Dropzone.js-防止空文件上传到服务器

Zub*_*zob 1 javascript jquery file-upload dropzone.js

我知道Dropzone支持将文件大小限制为一定数量的MB(通过maxFilesize)的可能性,但是有没有办法添加一个minFilesize?这是因为我不希望空文件到达服务器。

我看到这是插件中的要点,它决定了文件太大时如何处理文件:

Dropzone.prototype.accept = function (file, done) {
            if (file.size > this.options.maxFilesize * 1024 * 1024) {
                return done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize));
            } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {
                return done(this.options.dictInvalidFileType);
            } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {
                done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles));
                return this.emit("maxfilesexceeded", file);
            } else {
                return this.options.accept.call(this, file, done);
            }
        };
Run Code Online (Sandbox Code Playgroud)

我知道我可以else if在这里添加一个额外的东西来处理这种minFilesize情况,但是我想不使用插件的代码,并且如果可能的话,只能通过插件发出的事件在“外部”执行此操作。

这可能吗 ?

Loc*_*eer 6

根据http://www.dropzonejs.com/#configuration,应该遵循以下步骤:

Dropzone.options.myAwesomeDropzone = {
  paramName: "file", // The name that will be used to transfer the file
  maxFilesize: 2, // MB
  accept: function(file, done) {
    if (file.size == 0) {
      done("Empty files will not be uploaded.");
    }
    else { done(); }
  }
};
Run Code Online (Sandbox Code Playgroud)