Dropzone.js maxFilesize无效

时间:2013-07-14 21:00:49

标签: dropzone.js

尝试使用Dropzone上传3MB或更大的文件,但即使我指定了500MB的maxFilesize,它也不适用于我。试着查看其他答案,但它们对我不起作用。

以下是我对HTML的看法:

<form id="dropzone" action="photoupload.php" class="dropzone" enctype="multipart/form-data">
</form><br />

以下是我对Javascript的看法:

Dropzone.options.dropzone = {
    maxFilesize: 500,
    acceptedFiles: "image/*",
    init: function() {
        this.on("uploadprogress", function(file, progress) {
            console.log("File progress", progress);
        });
    }
  }

该脚本适用于acceptedFiles部分(拒绝所有非图像),但不会上传大于2到3 MB的文件,而且我对其原因一无所知。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

如果没有进一步的信息,我认为问题与您的服务器有关。显然Dropzone无法控制您的服务器配置,这通常也有文件大小上传限制。

在您的情况下(PHP),相关配置选项为upload_max_filesizepost_max_size。请参阅问题“How to change the maximum upload file size in PHP?”有关如何更改这些选项的更多信息。

答案 1 :(得分:3)

我认为你需要这个:

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);
      }
    };