我试图通过将类添加到表单来启动dropzone:
<form class="dropzone ng-pristine ng-valid dz-clickable" id="photoDropzoneDiv" action="/panel/vehicles/3/photos" accept-charset="UTF-8" method="post">
现在dropzone有效。接下来我将dropzone设置为不自动处理队列:
Dropzone.options.photoDropzone = {
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 5, // MB
autoProcessQueue: false,
parallelUploads: 500,
acceptedFiles: '.jpg,.jpeg,.JPEG,.JPG,.png,.PNG',
addRemoveLinks: true,
init: function(file, done) {
this.on("queuecomplete", function(file) {
this.removeAllFiles();
});
}
};
现在当我像这样调用processQueue时:
photoDropzone.processQueue();
它说Uncaught TypeError: photoDropzone.processQueue is not a function
。我该如何解决这个问题?
答案 0 :(得分:23)
这在这里工作:)
$('#submit').click(function() {
var myDropzone = Dropzone.forElement(".dropzone");
myDropzone.processQueue();
});
答案 1 :(得分:21)
Dropzone.options.addFiles = {
maxFileSize : 4,
parallelUploads : 10,
uploadMultiple: true,
autoProcessQueue : false,
addRemoveLinks : true,
init: function() {
var submitButton = document.querySelector("#act-on-upload")
myDropzone = this;
submitButton.addEventListener("click", function() {
myDropzone.processQueue();
});
myDropzone.on("addedfile", function(file) {
if (!file.type.match(/image.*/)) {
if(file.type.match(/application.zip/)){
myDropzone.emit("thumbnail", file, "path/to/img");
} else {
myDropzone.emit("thumbnail", file, "path/to/img");
}
}
});
myDropzone.on("complete", function(file) {
myDropzone.removeFile(file);
});
},
};