拖放区仅上传一个文件

2022-08-30 11:14:25

我正在使用dropzone.js作为我的拖放文件上传解决方案。我只想上传一个文件,如果我上传第二个文件,第一个文件应该被删除,第二个文件应该上传。任何想法如何做到这一点..

这是我的网页

<form class="dropzone dz-clickable" action="upload.php" enctype='multipart/form-data'>
  <i class="fa fa-cloud-upload element"></i>
  <div style="color:gray;">Drag and drop or click to upload image</div>
  <input type="hidden" name="filenameEmail" class="filenameEmail" value="">
  <input type="hidden" name="side" value="front">
</form>

我改变了dropzone.js

maxFiles: 1

它只允许上传一个文件,但我不能删除以前上传的文件。请帮帮我。提前感谢


答案 1

maxFiles:1 用于告诉 dropzone 应该只有一个文件。当文件超过 1 个时,将调用函数 maxfilesexceed,并将超出文件作为第一个参数。

这是一个简单的功能,用于删除第一个文件的预览并添加新的:)

maxFiles:1,
init: function() {
      this.on("maxfilesexceeded", function(file) {
            this.removeAllFiles();
            this.addFile(file);
      });
}   

答案 2

我将事件与方法结合使用,并遇到了事件调用的无限循环。这应该是使用的问题,因为我没有在官方网站或GitHub wiki中看到它。最后,我用事件解决了。Dropzone.js是我写的时候的最新版本(4.3.0)。maxfilesexceededaddFileaddFileaddedfile

init: function() {
  this.on('addedfile', function(file) {
    if (this.files.length > 1) {
      this.removeFile(this.files[0]);
    }
  });
}