如何在文件也反映在FormData对象的FileList对象上设置File对象和Length属性?

如何在文件也反映在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并设定.lengthFileList设置为文件数,其中文件设置为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


蝴蝶不菲
浏览 944回答 2
2回答

慕丝7291255

我最近没有在Edge中检查,但据我所知,只有Chrome已经开始实现DataTransfer构造函数,FF漏洞仅在FF上工作。顺便说一句,您链接到的bug报告并没有真正提到我所说的bug(我确实打开了一个bug,所以我将在编辑中添加一个链接),尽管很高兴看到他们正在处理它
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript