Как запустить Dropzone processQueue (), если не инициировать программно?
Im пытается инициировать 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
. Как я могу это исправить?
2 ответов
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);
});
},
};
Funcionou aqui:)
$('#submit').click(function() {
var myDropzone = Dropzone.forElement(".dropzone");
myDropzone.processQueue();
});