我有片刻。
var files = document.getElementById("filePostInput").files;
LogData("files length " + files.length); // 1
var formData = new FormData();
for (var file in files)
{
formData.append("file",files[file].data,files[file].name);
LogData("file name" + files[file].name);
}
输出:
周一,2018年4月26日09:39:47 GMT:档案名称
周一,2018年4月26日09:39:47 GMT:文件名未定义
周一,2018年4月26日09:39:47 GMT:file nameTest.txt
周一,2018年4月26日09:39:47 GMT:文件长度为1
当我调用files.length时,我得到1.然而,我的foreach循环记录了3个文件名' s。第一个是我放入文件输入的文件的名称,接下来的两个我不知道它们是什么。
有人可以向我解释这里发生了什么吗?
谢谢!
答案 0 :(得分:2)
使用for (var file of files)
代替for (var file in files)
。 for .. in
循环遍历files
的所有属性; for .. of
循环遍历集合中的项目。这样您就不需要[]
表示法:
for (var file of files)
{
formData.append("file", file.data , file.name);
LogData("file name" + file.name);
}