如何替换以前选择的文件?
How to replace a previously selected file?
我通过 ngx-dropzone-wrapper Angular 使用 Dropzone。
我没有使用直接从 Dropzone 上传,我只是让它收集文件,然后在我的代码中处理它们。
我需要将文件数限制为 1。所以我设置了 config.maxFiles = 1
。事实上,现在文件打开对话框只允许 select 单个文件。但问题是 Dropzone 不会替换以前的文件!相反,它将新文件添加到其带有 accepted=false(很可能是因为已达到 maxFiles)标志的文件集合中。那不是我所期望的。我需要 config.maxFiles = 1
删除旧文件并添加新文件并接受它。
所以,我应该打电话给 removeAllFiles(true)
来支持我的要求。但是我找不到任何在用户选择文件之后和 Dropzone 尝试处理它之前触发的事件处理程序。
那么,我该如何实现以下要求:
- 用户一次只能select一个文件
- 如果用户犯了错误并想要 select 另一个文件,新文件应该替换以前 selected 的文件
?
您需要告诉 dropzone 放弃第一张图片。您需要在 dropzone 选项中设置 maxfilesexceeded 的功能。
maxfilesexceeded: function (files) {
this.removeAllFiles();
this.addFile(files);
},
它在内部工作,如果你的最大文件是一个,而你正在添加第二个,第一个将被丢弃,因为它超过了它的限制
我通过 ngx-dropzone-wrapper Angular 使用 Dropzone。
我没有使用直接从 Dropzone 上传,我只是让它收集文件,然后在我的代码中处理它们。
我需要将文件数限制为 1。所以我设置了 config.maxFiles = 1
。事实上,现在文件打开对话框只允许 select 单个文件。但问题是 Dropzone 不会替换以前的文件!相反,它将新文件添加到其带有 accepted=false(很可能是因为已达到 maxFiles)标志的文件集合中。那不是我所期望的。我需要 config.maxFiles = 1
删除旧文件并添加新文件并接受它。
所以,我应该打电话给 removeAllFiles(true)
来支持我的要求。但是我找不到任何在用户选择文件之后和 Dropzone 尝试处理它之前触发的事件处理程序。
那么,我该如何实现以下要求:
- 用户一次只能select一个文件
- 如果用户犯了错误并想要 select 另一个文件,新文件应该替换以前 selected 的文件
?
您需要告诉 dropzone 放弃第一张图片。您需要在 dropzone 选项中设置 maxfilesexceeded 的功能。
maxfilesexceeded: function (files) {
this.removeAllFiles();
this.addFile(files);
},
它在内部工作,如果你的最大文件是一个,而你正在添加第二个,第一个将被丢弃,因为它超过了它的限制