我正在尝试使用文件读取器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数据和身体。
发布于 2014-01-08 12:49:28
所以我想出了我该做什么。
与发送主体不同,我需要创建一个新的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);https://stackoverflow.com/questions/20952246
复制相似问题