我正在做一个能够从网页获取图像的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