如何替换以前选择的文件?

Jus*_*tin 5 file-upload dropzone.js angular

我正在通过 ngx-dropzone-wrapper 将 Dropzone 与 Angular 结合使用。

我没有直接从 Dropzone 使用上传,我只是让它收集文件,然后在我的代码中处理它们。

我需要将文件数限制为 1。所以我设置了config.maxFiles = 1. 事实上,现在文件打开对话框只允许选择单个文件。但问题是 Dropzone 不会替换以前的文件!相反,它使用accepted=false(很可能,因为达到了maxFiles)标志将新文件添加到其文件集合中。那不是我所期望的。我需要config.maxFiles = 1删除旧文件并添加新文件并接受它。

所以,我应该打电话removeAllFiles(true)来支持我的要求。但是我找不到任何在用户选择文件之后和 Dropzone 尝试处理它之前触发的事件处理程序。

那么,我如何实现以下要求:

  • 用户一次只能选择一个文件
  • 如果用户犯了错误并想选择另一个文件,则新文件应替换先前选择的文件

?

Dan*_*Lpz 3

你需要告诉 dropzone 放弃第一张图片。您需要 dropzone 选项中 maxfilesexceeded 的功能。

 maxfilesexceeded: function (files) {
        this.removeAllFiles();
        this.addFile(files);
 },
Run Code Online (Sandbox Code Playgroud)

它在内部工作,如果您的 maxfiles 是一个,并且您要添加第二个,则第一个将被丢弃,因为它超出了其限制