function sendFile() {
var content = "<hello>world</hello>"; // set here the content of your file
var blob = new Blob([content], { type: "text/xml"}); // set the type of content (eg: image/jpeg)
var formData = new FormData();
formData.append('blah', blob);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/server', true);
xhr.onload = function(e) {
alert ('successfully (or not) sent');
};
xhr.send(formData);
}
2条答案
按热度按时间wqlqzqxt1#
可以将文件输入值替换为blob。
要做到这一点,你必须从它构造File对象,如下所示:
然后创建DataTransfer对象并将此文件添加到其中。
这将填充DataTransfer的文件列表,可将其分配给文件输入的文件属性。
正如在fiddle中所看到的,它被正确地分配了。另外,我测试了上传(使用enctype=“multipart/form-data”的表单输入),文件被正确地传递到服务器。
cvxl0en22#
通过XMLHttpRequest和FormData的新属性,这是可能的
感谢@musa的评论;- )
请考虑以下(未测试)示例:
更多信息:
注意事项:FormData is not supported by IE9 (and less)
这与Blob相同