尝试使用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的文件,而且我对其原因一无所知。
任何帮助将不胜感激!
答案 0 :(得分:3)
如果没有进一步的信息,我认为问题与您的服务器有关。显然Dropzone无法控制您的服务器配置,这通常也有文件大小上传限制。
在您的情况下(PHP),相关配置选项为upload_max_filesize
和post_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);
}
};