使用文件输入选择多个文件时删除单个文件

Luk*_*kas 5 html javascript file

当允许用户选择多个文件时,是否可以从要上载的文件列表中删除单个文件?例如,我有一个看起来像这样的输入:

<input type = 'file' name = 'file' id = 'file' multiple = 'multiple' />
Run Code Online (Sandbox Code Playgroud)

用户选择4张照片,1.jpg,2.jpg,3.jpg和4.jpg.是否可以删除4.jpg,因为用户改变主意并且不想上传那个?

rai*_*7ow 1

简短的回答是“不”。不可能file input从脚本中更改元素的值:否则它将是一个猛犸象的安全漏洞大小。让我向您保证:某些浏览器(即您的浏览器!)在处理文件输入时变得非常挑剔。

但是您可以使用以下方法:让用户上传您想要的任意数量的文件(不过,设置一些限制是明智的做法),但将它们放入临时存储中。仅当用户确实表达了保存这些文件所附加到的实体的愿望时,才将这些文件移至永久状态。

或者可能是时候考虑使用一些后备机制、Flash 或类似的东西了。事实上,这样做还有另一个原因:IE8 不支持multiple文件选择器上的属性。