[英]Post file from one remote server to another
我正在编写 Google Chrome 扩展程序。 我在远程服务器上有二进制文件的 URL。 我想将该文件发布到其他服务器。 所以相关的 function 应该是这个样子。
function postFileToExampleCom(fileUrl) {
var file = ???; // Blob with data from file located at fileUrl
var form = new FormData();
form.append('file', file);
var request = new XMLHttpRequest();
request.open('POST', 'http://example.com/post/', true);
request.send(form);
}
FormData.append() 期望第二个参数是包含文件数据的 Blob object。 获得它的最佳方法是什么? 文件很可能是已在活动选项卡中加载的图像,因此最好使用缓存而不是再次下载此文件。
UPD:我尝试使用另一个 XMLHttpRequest 设置responseType = 'blob'
下载文件,但奇怪的是它返回空response
。
“.. 文件很可能是已在活动选项卡中加载的图像,因此最好使用缓存而不是再次下载此文件。”
如果您将文件保存在本地(例如使用 localStorage 或 fileAPI) - 那么您应该确保读取它并取回文件,而不是数据的序列化版本。
我会调试'var file=???'的行看看你到达那里的 obj 是什么。
为您的“请求”设置这 3 个函数是一个很好的做法:onload、onerror 和 onprogress。
我希望它有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.