如何从 FileList 中删除文件

2022-01-11 00:00:00 drag-and-drop javascript html filelist

我正在使用 HTML5 构建一个拖放上传 Web 应用程序,我将文件放到一个 div 上,当然还获取了 dataTransfer 对象,这给了我 文件列表.

I'm building a drag-and-drop-to-upload web application using HTML5, and I'm dropping the files onto a div and of course fetching the dataTransfer object, which gives me the FileList.

现在我想删除一些文件,但我不知道怎么做,或者是否可能.

Now I want to remove some of the files, but I don't know how, or if it's even possible.

最好我想从 FileList 中删除它们;我对他们没有用.但如果这不可能,我是否应该在与 FileList 交互的代码中写入检查?这似乎很麻烦.

Preferably I'd like to just delete them from the FileList; I've got no use for them. But if that's not possible, should I instead write in checks in code that interacts with the FileList? That seems cumbersome.

推荐答案

如果你只想删除几个选定的文件:你不能.您链接到的 文件 API 工作草案 包含一条注释:

If you want to delete only several of the selected files: you can't. The File API Working Draft you linked to contains a note:

HTMLInputElement 接口[HTML5] 有一个 readonly FileList属性,[…]
[强调我的]

The HTMLInputElement interface [HTML5] has a readonly FileList attribute, […]
[emphasis mine]

阅读一点 HTML 5 工作草案,我遇到了 通用 input 元素 API.看来您可以通过将 input 对象的 value 属性设置为空字符串来删除 整个 文件列表,例如:

Reading a bit of the HTML 5 Working Draft, I came across the Common input element APIs. It appears you can delete the entire file list by setting the value property of the input object to an empty string, like:

document.getElementById('multifile').value = "";

顺便说一句,使用 Web 应用程序中的文件 文章可能也很有趣.

BTW, the article Using files from web applications might also be of interest.

相关文章