【问题标题】:Send arrayBuffer with body发送带有正文的arrayBuffer
【发布时间】:2014-01-08 20:49:28
【问题描述】:

我正在尝试使用文件阅读器 api 并将数据发送到服务器。到目前为止,我发现我不能再使用 readAsBinaryString(它已被弃用),而是必须使用 readAsArrayBuffer。

我还必须发送请求的正文。所以我最初的请求是这样的:

var binaryString= fileData; //populated earlier from readAsBinaryString()

var body = "";
body += ...
body += binaryString;

xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "multipart/form-data;...");
xhr.send();

我在做 arrayBuffer 时似乎无法使用它。我尝试将 arrayBuffer 转换为字符串,但这对于大文件来说太占用内存了。所以我的问题是如何同时发送 arrayBuffer 数据和正文。

【问题讨论】:

    标签: javascript file-upload xmlhttprequest


    【解决方案1】:

    所以我想出了我需要做什么。

    我需要创建一个新的 FormData() 对象并以这种方式附加它,而不是发送正文。

    所以它看起来像这样:

    var formDataSend = new FormData();
    
    formDataSend.append("key", "value...");
    ...
    formDataSend.append("file", fileData, "fileName.jpg"); //fileData populated earlier from readAsBinaryString()
    
    xhr.open("POST", url, true);
    xhr.send(formDataSend);
    

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 2019-03-15
      • 2019-06-05
      • 2014-07-06
      相关资源
      最近更新 更多