我需要将 JavaScript 生成的文件(最多几 MB)发送到服务器。我需要用 POST (不是 ajax POST)来完成。
如何通过 JavaScript 将文件添加到 input type="file" ?根据预填充 HTML 表单文件输入由于安全原因,这似乎是不可能的。但我在浏览器中创建文件,这不应该是安全问题。
我可能可以将文件作为文本粘贴到其他类型的输入中。但我不认为这是正确的。
这里的解决方案是什么?有没有办法将文件从浏览器放入文件输入?或者可以用其他输入来做吗?有没有办法在没有输入元素的情况下将文件打包到 POST ?
我想用什么:
$("#button").click(function(e) {
$('#file').val(export_pdf());
$('#form').submit();
});
无法创建文件并将其附加到 HTML 表单输入,但使用 FormData 对象,您可以将生成的文件作为发布请求的一部分发送到服务器。
从 MDN 拉取:
var formData = new FormData();
// JavaScript file-like object
var content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file...
var blob = new Blob([content], { type: "text/xml"});
formData.append("webmasterfile", blob);
var request = new XMLHttpRequest();
request.open("POST", "http://foo.com/submitform.php");
request.send(formData);
这应该会得到与 JS 生成的文件发送到服务器相同的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)