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

标签 angular file-upload dropzone.js

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

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

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

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

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

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

  • ?

    最佳答案

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

     maxfilesexceeded: function (files) {
            this.removeAllFiles();
            this.addFile(files);
     },
    

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

    关于angular - 如何替换以前选择的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59898774/

    相关文章:

    angular - ng-model 可以更新模型中的对象吗?

    file-upload - 使用 LOAD CSV 功能在 neo4j 中上传的最大文件大小是多少

    javascript - 有没有办法保存单个图像并防止用户使用 dropzone.js 放置多个图像?

    dropzone.js - 如何使用 puppeteer 和 dropzone 上传文件?

    angular - 如何修复 Angular 11 'Option "进度”已被弃用?

    angular - 从不同的组件 Angular 关闭 Material 对话框

    javascript - ngfor 和 ngif 使用局部变量不起作用

    php - 我如何允许用户下载存储在 webroot 之外的文件?

    asp.net-mvc - dropzonejs 多文件上传无法按预期工作

    django - 尝试使用 django 和 dropzone/