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

Post file from one remote server to another

本文关键字:服务器 另一个 一个 文件      更新时间:2023-09-26

我正在写一个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. 如果你将文件保存在本地(例如使用localStorage或fileAPI) -那么你应该确保你读取它并获得一个文件,而不是数据的序列化版本。

  2. 我会调试'var file=??,看看你得到的对象是什么。

  3. 这是一个很好的做法,有这3个功能为您的"请求":onload, onerror和onprogress

相关文章: