javascript - xhr.send(file) 不会将其作为多部分发布

标签 javascript firefox html google-chrome

在 Firefox 3.6 和 Chrome 上,使用 xhr.send(file) 只是将原始内容放入请求的正文中,这不是真正的多部分/表单数据上传。

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

但是,在 send() 期间不能真正将字符串与文件内容混合。

有什么解决方法吗?

最佳答案

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

关于javascript - xhr.send(file) 不会将其作为多部分发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315429/

相关文章:

firefox - Firefox 9.0.1 中具有两种不同形状的字段集?

Javascript全局变量仅在匿名函数内更新

javascript - 如何让用户改变表单的样式元素?

javascript/jquery - firefox textarea 似乎没有注册值

javascript - div元素换位后效果

HTML 放置字段集/标签相邻

c# - 如何向我的 C# Web 应用程序添加文件上传按钮?

javascript - jQuery 中的 .hide() 和 .show() 行为奇怪

javascript - 在 IE7 中不显示的 css 按钮内的绝对定位跨度

CSS 类名称在 Firebug 中显示为红色