Javascript Dropzone.js-防止将空文件上载到服务器
我知道Dropzone支持将文件大小限制为一定数量的MB(通过Javascript Dropzone.js-防止将空文件上载到服务器,javascript,jquery,file-upload,dropzone.js,Javascript,Jquery,File Upload,Dropzone.js,我知道Dropzone支持将文件大小限制为一定数量的MB(通过maxFilesize),但是有没有办法添加minFilesize?这是因为我不希望空文件到达服务器 我知道这就是插件的要点,它决定了在文件太大的情况下如何处理文件: Dropzone.prototype.accept = function (file, done) { if (file.size > this.options.maxFilesize * 1024 * 1024) {
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);
}
};
我知道我可以在这里添加一个额外的else if
来处理minFilesize
场景,但我不想参与插件的代码,如果可能,我只想通过插件引发的事件在“外部”执行此操作
这是可能的吗?根据,类似这样的事情应该可以做到:
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(); }
}
};
根据我们的观点,类似这样的事情应该可以做到:
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(); }
}
};
下面的代码对我来说很好。但是当参数maxFilesize:500与accept函数一起使用时,它会给我不可预知的结果,因此,如果您与accept函数一起使用,请删除maxFilesize参数
var emojiCustomizationDropzone = new Dropzone("#emojiCustomizationDropBox", {
paramName: "images",
accept: function(file, done) {
if (file.size == 0) {
done("Sorry, Your file is empty, Nothing to upload");
return;
} else if (file.size > MAX_UPLOAD_FILE_SIZE) {
done("Sorry, Your file is too large to upload, Maximum file size is 500KB");
}else {
done();
}
},
url: sampleURL,
uploadMultiple: true,
autoProcessQueue: false,
method: "POST",
enctype: "multipart/form-data",
headers: {
contentType: false,
processData: false,
authorization: "Bearer " + $.cookie("Access_token")
},
parallelUploads: 1,
maxFiles: 1
});
此接受函数不会阻止为我向dropbox添加文件。我可以提出另一种解决方案。我们可以向onaddedfile方法添加我们喜欢的条件。如果文件不匹配,我们可以从dropzone中使用removeFile方法将其从相应的dropzone中删除
emojiCustomizationDropzone.on("addedfile", function (file) {
if (file.size == 0) {
emojiCustomizationDropzone.removeFile(file);
return;
}
if (file.size > MAX_UPLOAD_FILE_SIZE) {
emojiCustomizationDropzone.removeFile(file);
return;
}
}
希望这对别人有帮助 下面的代码对我来说很好。但是当参数maxFilesize:500与accept函数一起使用时,它会给我不可预知的结果,因此,如果您与accept函数一起使用,请删除maxFilesize参数
var emojiCustomizationDropzone = new Dropzone("#emojiCustomizationDropBox", {
paramName: "images",
accept: function(file, done) {
if (file.size == 0) {
done("Sorry, Your file is empty, Nothing to upload");
return;
} else if (file.size > MAX_UPLOAD_FILE_SIZE) {
done("Sorry, Your file is too large to upload, Maximum file size is 500KB");
}else {
done();
}
},
url: sampleURL,
uploadMultiple: true,
autoProcessQueue: false,
method: "POST",
enctype: "multipart/form-data",
headers: {
contentType: false,
processData: false,
authorization: "Bearer " + $.cookie("Access_token")
},
parallelUploads: 1,
maxFiles: 1
});
此接受函数不会阻止为我向dropbox添加文件。我可以提出另一种解决方案。我们可以向onaddedfile方法添加我们喜欢的条件。如果文件不匹配,我们可以从dropzone中使用removeFile方法将其从相应的dropzone中删除
emojiCustomizationDropzone.on("addedfile", function (file) {
if (file.size == 0) {
emojiCustomizationDropzone.removeFile(file);
return;
}
if (file.size > MAX_UPLOAD_FILE_SIZE) {
emojiCustomizationDropzone.removeFile(file);
return;
}
}
希望这对别人有帮助 看看这里的“Bieber”示例:看看使用
file.size
条件是否会奏效。是的,在回调中处理它似乎就可以了。谢谢。看看这里的“Bieber”示例:看看使用file.size
条件是否会奏效。是的,在回调中处理它似乎就可以了。谢谢