如何动态更改 dropzone 中的 maxFiles?

How can change maxFiles in dropzone dynamically?

我的项目中有一个 select 选项元素,有两个选项,书籍和图像。对于书籍选项,我只想允许上传单个文件。但是对于图像选项,我需要允许多个文件 selection。我正在尝试这种方式但没有成功:

 Dropzone.options.frmMediaDropzone = {
   maxFilesize: 99,
   acceptedFiles: ".jpeg,.jpg,.png,.gif,.pdf",
   parallelUploads: 1,
   addRemoveLinks: true,
   maxFiles: 100,
   init: function() {
     myDropzone = this;
     this.on("removedfile", function(file) {
       console.log(file);
     });

     this.on("success", function(file, response) {
       console.log(response.imageName);
     });
   }
 };

关于选项更改,我正在尝试:

Dropzone.options.frmMediaDropzone.maxFiles = 1;

但是它不起作用。如果有人有想法请帮助。

试试这个方法解决你的问题,

您需要在javascript中定义一个变量。

var myDropZone;

init() 事件中初始化 myDropZone 变量。

init: function() {

    myDropzone = this;
}

myDropzone 变得可访问,所以声明

myDropzone.options.maxFiles = 1;

文件上传完成后设置clickable:false

myDropzone.options.clickable = false;

超过最大文件限制后手动删除文件。

myDropzone.on("maxfilesexceeded", function(file) {
    myDropzone.removeFile(file);
});

有两种方法可以做到这一点。您可以动态创建您的 dropzone,然后使用 .attr 更改它的属性,或者在定义 dropzone 时在您的 init 属性 中创建一个侦听器事件。

有关类似示例,请参阅此 link(请参阅第 2 个答案): Dropzone: change acceptedFiles dynamically