xhr.send (файл) не публикует его как составную часть - PullRequest
1 голос
/ 23 июля 2010

В Firefox 3.6 и Chrome использование xhr.send (файл) просто помещает необработанное содержимое в тело запроса, и это не является истинной загрузкой multipart / form-data.http://kaply.com/weblog/2010/05/20/post-multipart-form-xhr/

Но нельзя смешивать строку с содержимым файла во время отправки ().

Есть ли обходные пути?

Ответы [ 2 ]

14 голосов
/ 17 июня 2011

xhr.sendAsBinary() нестандартно. Вместо этого используйте xhr.send(FormData), который создает запрос multipart/form-data, позволяет добавлять файлы и данные произвольной формы.

var formData = new FormData();
formData.append(file.name, file);

var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.onload = function(e) { ... };

xhr.send(formData);  // multipart/form-data

См. http://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-formdata

1 голос
/ 10 сентября 2010

Ключевым моментом является использование sendAsBinary (body) вместо send (body).Смотрите последний комментарий на странице, на которую вы ссылаетесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...