xhr.send(file)不会将其发布为multipart

Gub*_*bbi 1 javascript firefox html5 google-chrome

在Firefox 3.6和Chrome上,使用xhr.send(文件)只是将原始内容放入请求的主体中,而不是真正的multipart/form-data上传.

尝试这样做:http://kaply.com/weblog/2010/05/20/post-multipart-form-xhr/

但是,在send()期间无法将字符串与文件内容混合.

任何解决方法?

ebi*_*del 14

xhr.sendAsBinary()是非标准的.相反,use 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
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-formdata