我正在做一個能夠從網頁獲取圖像的chrome擴展,並且在獲取它之後,我試圖自動將其上載到Intranet服務器,而無需用戶迭代。使用chrome擴展將圖像上傳到服務器
我正在這樣做。
這是Content_script.js
...
x = $(frame1).contents().find("#image");
chrome.extension.sendRequest(x[0].src);
...
這是對upload_img.php
...
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/app_get_pictures/images/';
$uploadfile = $uploaddir . basename($_FILES['doc']['name']);
move_uploaded_file($_FILES['doc']['tmp_name'], $uploadfile);
...
有了這個background.js
chrome.extension.onRequest.addListener(function(links) {
chrome.downloads.download({ url: links ,
conflictAction: "overwrite",
filename: "get_image.jpg" },
function(DescargaId) {
var formData = new FormData();
formData.append("doc", Blob, "~/Downloads/get_image.jpg");
var request = new XMLHttpRequest();
request.open("POST", "http://192.168.0.30/app_get_pictures/upload_img.php");
request.setRequestHeader("Content-Type", "multipart/form-data");
request.send(formData);
});
這一點,我已經下載圖像成功到本地機器,但無法將圖像上傳到服務器。
可以這樣做,或者即使我可以直接將圖像上傳到服務器,而無需先將它首先下載到本地機器。
注意:我在擴展解決方案的彈出頁面上沒有任何標籤形式,也沒有彈出頁面,因爲正如我已經說過的,我不需要任何迭代用戶。
感謝您的幫助!
嘗試直接將圖像轉換爲Blob,示例應該易於使用,您需要在manifest.json的權限中有''''。 –
wOxxOm
在大多數情況下,那豈不是更有效的圖像URL發送到服務器,讓服務器獲取圖像本身? – Makyen