【发布时间】:2012-02-16 06:55:25
【问题描述】:
我正在使用 JavaScript“文件”api 读取有关将要上传的图像的信息,以便在实际上传之前生成预览缩略图,基于此处找到的演示 (JavaScript file api)。
使用带有“多个”属性的文件输入,可以同时选择一个或多个文件,例如:<input type="file" id="imageFiles" name="userfile[]" multiple />
一旦用户选择了图像,我使用 firebug 检查元素,我可以在 DOM 中看到“文件”对象包含有关所选图像的信息。
“文件”对象将包含与选择的文件一样多的属性,并且每个属性都包含有关每个图像的信息。我只能将“文件”对象描述为关联数组,因为每个属性本身就是一个对象。
我想要做的是能够从“文件”对象中删除给定的属性,从而删除将上传的图像之一,而无需再次选择图像。
到目前为止,这是我尝试过的,但它不起作用:
var getAllFiles = document.getElementById('imageFiles');
var allImages = getAllFiles.files; // returns an object with X properties
delete allImages[X]; // "X" is whatever property key I'm passing in
我已经尝试过“splice()”方法,但它也不起作用。
非常感谢。
【问题讨论】:
-
标题错误地陈述了问题。
files不是字典,它是 DOM 对象的成员。关于 Javascript 可以对任何 DOM 对象做什么和不能做什么,有很多安全考虑,但没有一个比 INPUT 类型的文件更严格地控制。将您的问题重新命名为“如何从多文件上传输入中取消选择文件?” -
感谢您抽出时间 j-man86 和 Malvolio。
标签: javascript