有代码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(使用前将#替换为@)