2014-01-06 29 views
1

我正在嘗試使用文件讀取器api並將數據發送到服務器。我到目前爲止已經發現,我不能再使用readAsBinaryString(它已被棄用),而是必須使用readAsArrayBuffer。發送arrayBuffer與正文

我也必須發送請求的正文。所以我最初的請求看起來是這樣的:

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數據和一個身體在同一時間。

回答

0

所以我想清楚我需要做什麼。

而不是發送身體我需要創建一個新的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); 
相關問題