首页 > web前端 > js教程 > 使用FormData时如何正确设置FileList和文件属性?

使用FormData时如何正确设置FileList和文件属性?

Patricia Arquette
发布: 2024-12-08 06:19:10
原创
401 人浏览过

How to Correctly Set FileList and File Properties When Using FormData?

如何在 FileList 对象中设置 File 对象和 length 属性,其中文件也反映在 FormData 对象中?

如提示中所述,可以设置 的 .files 属性从另一个 到 FileList 的元素元素的 .files 属性或 DataTransfer.files 属性。

但是,FileList 对象有一个 .length 属性,即使通过 .files 属性设置后,该属性仍保持为 0。另外,传递一个

包含 使用此方法修改 .files 将导致 .size 为 0 的 File 对象。

要解决此问题,有必要首先确保 FileList 是可变的。这可以通过利用 DataTransfer 构造函数创建一个可通过 DataTransferItemList 访问的可变 FileList 来实现。

一旦 FileList 可变,就可以使用 DataTransferItemList.add() 方法单独设置文件。这还将确保 FileList.length 属性设置为正确的文件数量。

通过执行此过程,文件也将反映在从表单创建的 FormData 对象中。

这是一个示例:

const dT = new DataTransfer();
dT.items.add(new File(['foo'], 'programmatically_created.txt'));
document.querySelector('input[type="file"]').files = dT.files;
登录后复制

通过这种方法, 的 FileList元素将使用在 DataTransfer 对象中创建的文件进行填充。 FileList.length 属性将设置为 1,文件将反映在从表单构造的 FormData 对象中。

以上是使用FormData时如何正确设置FileList和文件属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板