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

时间:2011-07-16 10:19:33

标签: javascript html5 google-chrome-extension

我正在撰写Google Chrome扩展程序。我在远程服务器上有二进制文件的URL。我想将该文件发布到其他服务器。所以相关的功能应该是这样的。

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对象。获得它的最佳方法是什么?文件很可能是已在活动标签中加载的图像,因此最好使用缓存而不是再次下载此文件。

UPD:我尝试使用另一个XMLHttpRequest设置responseType = 'blob'下载文件,但奇怪的是它返回空response

1 个答案:

答案 0 :(得分:0)

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

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

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

  3. 为您的“请求”提供这3个功能是一种好习惯: onload,onerror和onprogress。

  4. 我希望它有所帮助。