首页 >web前端 >js教程 >如何以编程方式修改 FileList 和 FormData 以进行文件上传?

如何以编程方式修改 FileList 和 FormData 以进行文件上传?

Susan Sarandon
Susan Sarandon原创
2024-12-03 19:40:10759浏览

How to Programmatically Modify FileList and FormData for File Uploads?

如何使用指定文件修改 FileList 和 FormData

设置 的 .files 属性具有来自另一个 的 FileList 的元素或 DataTransfer.files 允许您指定要上传的文件。然而,这种方法带来了挑战:

  • .files.length 属性保持为 0。
  • 传递给 FormData() 的 File 对象的 .size 为 0。

使用 DataTransfer 的解决方案

DataTransfer 构造函数创建一个可通过 DataTransferItemList 访问的可变 FileList。要在 FileList 上设置任意文件,您可以使用以下方法:

const dT = new DataTransfer();
dT.items.add(new File(['foo'], 'programmatically_created.txt'));
inp.files = dT.files;

这里,dT 是一个新的 DataTransfer 对象,inp 是您的输入元素。此技术允许您设置特定文件,更新 FileList 的 .length 属性,并确保文件反映在 FormData 对象中。

以上是如何以编程方式修改 FileList 和 FormData 以进行文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn