2014-01-06 3 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(); 

Я не могу использовать это, когда делаю массивBuffer. Я попытался преобразовать 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); 
Смежные вопросы