我有一段时间。
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格林尼治时间:档案名称 清华2018年4月26日09:39:47格林尼治时间:文件名未定义 清华2018年4月26日09:39:47格林尼治时间:文件nameTest.txt 清华2018年4月26日09:39:47格林尼治时间:文件长度1
当我调用files.length时,我得到了1。但是,我的foreach循环记录了3个文件的名称。第一个是我放入文件输入的文件的名称,接下来的两个我不知道它们是什么。
有人能向我解释一下这里发生了什么吗?
谢谢!
发布于 2018-04-26 09:55:57
使用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);
}https://stackoverflow.com/questions/50039993
复制相似问题