HTML:
<input accept="image/*" class="" id="my_pics" multiple="multiple" name="pics" required="true" type="file" />
JS:
var files = document.getElementById('my_pics').files;
files.splice(1,2)
//TypeError: Object #<FileList> has no method 'splice'
delete files.item(2)
// true, but nothing happens with "2"
delete files[2]
// false, result is the same
我有一个包含多个文件的表单,我需要在服务器上仅在一个输入中上传有限数量的图像(例如,5),但我的代码不起作用。
如何解决?感谢。
答案 0 :(得分:4)
您无法删除它,因为它是File
对象中指向的FileList
对象,因此上面的错误。但是,您可以遍历FileList
并仅将所需的项目推送到数组,然后可以修改:
var files = document.getElementById('my_pics').files;
var newList = [];
for(var i = 0; i < files.length; i++)
{
if(i !== 2)
{
newList.push(files.item(i));
}
}
从this answer可以看出,你不能delete
实际的对象。只能删除对象的引用。因此,即使它适用于FileList
对象,它也不会,但它只会设置that element equal to undefined
。