Javascript Gecko/WebKit中的多次上载:允许在上载之前从列表中删除

Javascript Gecko/WebKit中的多次上载:允许在上载之前从列表中删除,javascript,file-upload,fileapi,Javascript,File Upload,Fileapi,我试图在元素上使用新的multiple=“multiple”属性。到目前为止,Gecko和WebKit浏览器都支持这一点。我正在测试Firefox 3.6和Chrome 5.0 我能够很好地使用它,并显示文件列表(我用作指导)。然而,令人沮丧的是,在添加文件之后,用户似乎不可能从列表中删除这些文件。唯一的方法是单击“浏览…”按钮并选择一组新文件 这是因为元素提供的文件列表对象是只读的,如规范中所述(无法链接-请参阅W3C网站上的FileAPI TR) 当然还有一些解决办法,比如保留一个“已删除”

我试图在元素上使用新的multiple=“multiple”属性。到目前为止,Gecko和WebKit浏览器都支持这一点。我正在测试Firefox 3.6和Chrome 5.0

我能够很好地使用它,并显示文件列表(我用作指导)。然而,令人沮丧的是,在添加文件之后,用户似乎不可能从列表中删除这些文件。唯一的方法是单击“浏览…”按钮并选择一组新文件

这是因为
元素提供的文件列表对象是只读的,如规范中所述(无法链接-请参阅W3C网站上的FileAPI TR)

当然还有一些解决办法,比如保留一个“已删除”项目的列表,无论如何都要上载所有内容,然后忽略“已删除”项目。这有点脏,如果大量文件被“删除”,可能会导致上传速度慢得令人无法接受


有人知道其他的解决办法吗,或者有更好的办法来解决这个问题吗?其目的是能够使用“multiple”属性,并允许用户在上传之前从列表中删除文件。

我从文件API的编辑Arun Ranganathan那里得到了答案:

程序员(使用文件API 以编程方式操纵用户的 文件选择)不能与 用户的决定。因此,API并没有这样做 允许程序员添加 根据用户的选择或 从用户的选择中删除文件。如果我们允许这个,这个 这将是一个巨大的安全漏洞。坏的 网站可能会做得很糟糕 事情或者至少是非常烦人的 东西。这就是为什么现在 范例不允许任何 与底层文件的交互 在上未经用户批准的系统 至少通过“文件”对话框 (当前由输入生成) type=“file”)

我同意文件列表应该反映用户最初在文件选择器中选择的内容,并且能够向文件列表添加内容将是一个巨大的安全漏洞。我看不出能够删除东西会导致如此巨大的安全问题,但我可以看到它如何被用于不太积极的目的