如何在文件也反映在FormData对象的FileList对象上设置File对象和Length属性?可以设置.files.的性质<input type="file">元素的FileList例如,不同的<input type="file">元素.files财产或DataTransfer.files财产。看见使.files可设置#2866, 在将文件上传到HTML表单和提交文件之间会发生什么?.FileList对象具有Symbol.iterator属性,我们可以使用该属性设置File对象,但是,该对象是可迭代的。.files .length仍然设置为0并通过一个<form>有<input type="file">设置.files使用上述方法设置,则生成File对象具有.size设为0.如何设置File在…FileList并设定.length的FileList设置为文件数,其中文件设置为FormData()反对?const input = document.createElement("input");const form = document.createElement("form");const [...data] = [
new File(["a"], "a.txt"), new File(["b"], "b.txt")];input.type = "file";input.name = "files";input.multiple = true;
// set `File` objects at `FileList`input.files[Symbol.iterator] = function*() {
for (const file of data) {
yield file };};form.appendChild(input);const fd = new FormData(form);for (const file of input.files) {
console.log(file); // `File` objects set at `data`}for (const [key, prop] of fd) {
// `"files"`, single `File` object having `lastModified` property
// set to a time greater than last `File` object within `data`
// at Chromium 61, only `"files"` at Firefox 57
console.log(key, prop); }console.log(input.files.length); // 0
2 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
我最近没有在Edge中检查,但据我所知,只有Chrome已经开始实现DataTransfer构造函数,FF漏洞仅在FF上工作。顺便说一句,您链接到的bug报告并没有真正提到我所说的bug(我确实打开了一个bug,所以我将在编辑中添加一个链接),尽管很高兴看到他们正在处理它
添加回答
举报
0/150
提交
取消