繁体   English   中英

将文件从一台远程服务器发布到另一台服务器

[英]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

“.. 文件很可能是已在活动选项卡中加载的图像,因此最好使用缓存而不是再次下载此文件。”

  1. 如果您将文件保存在本地(例如使用 localStorage 或 fileAPI) - 那么您应该确保读取它并取回文件,而不是数据的序列化版本。

  2. 我会调试'var file=???'的行看看你到达那里的 obj 是什么。

  3. 为您的“请求”设置这 3 个函数是一个很好的做法:onload、onerror 和 onprogress。

我希望它有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM