使用DropzoneJS v4.0。
以下是为dropzone设置的选项。
Dropzone.options.myDropzone = {
acceptedFiles: '.jpg,.jpeg,.png',
addRemoveLinks: true,
autoQueue: false,
clickable: false,
maxFiles: 1,
maxThumbnailFilesize: 2000,
parallelUploads: 10,
thumbnailWidth: null,
thumbnailHeight: null,
init: function() {
var dropzone = this;
dropzone.on("addedfile", function(file) {
if (!file.type.match(/image.*/)) {
dropzone.removeFile(file);
}else {
function();
}
});
dropzone.on("maxfilesexceeded", function(file) {
dropzone.removeFile(file);
});
dropzone.on("removedfile", function(){
if($('#imgEditor').find('img').length == 0) {
$('.overlay').remove();
$('#cropper').remove();
$('#upload').remove();
}
});
$(document).on('click', '#upload', function(){
dropzone.processQueue();
});
}
};
当我点击function()
事件中addedfile
动态生成的上传按钮时,没有任何反应。检查dropzone.getAcceptedFiles().length
将返回dropzone中的文件数,但检查dropzone.getQueuedFiles().length
将返回0.没有文件已上载或已触发上载,文件类型为有效文件类型。
我需要帮助理解为什么文件被视为已被接受但未排队。我没有找到解释差异的文档,如果有任何和在代码中,如果文件被接受,它应该排队,但事实并非如此。所以我知道为什么processQueue
实际上失败了我只是不知道为什么排队失败。
将autoQueue
更改为true可以正确上传文件,但这不是所需的效果。请参阅Enyo FAQ Dropzone Submit Button。
GIT中 #989
答案 0 :(得分:1)
autoQueue
就是这样做的:它会在文件添加后对其进行排队。由于您已将其停用,因此未排队。
我认为您正在寻找的是:autoProcessQueue: false
除非您实际处理队列,否则不会上传文件,而是手动"。