JavaScript 从要上传的 FileList 中删除文件

2024-02-14

有代码https://jsfiddle.net/bfzmm1hc/1 https://jsfiddle.net/bfzmm1hc/1一切看起来都很好,但我想从集合中删除一些文件。

我已经找到了这些:

  • 如何从输入文件控件中删除一个特定的选定文件 https://stackoverflow.com/questions/19060378/how-to-remove-one-specific-selected-file-from-input-file-control
  • 输入类型=文件多个,删除项目 https://stackoverflow.com/questions/19666064/input-type-file-multiple-delete-items

我知道FileList对象是只读的,所以我可以将文件复制到新数组。但是我应该如何处理这个新数组File物体?我无法将其分配给files财产...


我找到了一个解决方法。这根本不需要 AJAX 来请求,并且可以将表单发送到服务器。基本上你可以创建一个hidden or text输入并设置它的value处理所选文件后创建的 base64 字符串的属性。

<input type=hidden value=${base64string} />

您可能会考虑创建多个输入文件而不是输入的想法text or hidden。这将不起作用,因为我们无法为其分配值。

此方法将在发送到数据库的数据中包含输入文件,并忽略输入文件,您可以:

  • 在后端不考虑字段;
  • 你可以设置disabled在序列化表单之前将属性赋予输入文件;
  • 在发送数据之前删除 DOM 元素。

当您想要删除文件时,只需获取元素的索引并从 DOM 中删除输入元素(文本或隐藏)。

要求:

  • 您需要编写逻辑以将文件转换为 Base64,并在输入文件触发时将所有文件存储在数组中change event.

Pros:

  • 这基本上会给你a lot控制,您可以过滤、比较文件、检查文件大小、MIME 类型等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 从要上传的 FileList 中删除文件 的相关文章

随机推荐