我的目标是将一堆图片上传到服务器,如果上传过程成功完成,然后清除表单。但是successmultiple
事件根本不会触发。
我尝试通过removeAllFiles()
在代码中的不同位置定位 call for 以三种不同的方式做到这一点:内部和外部init
以及作为单独的事件。但没有成功。
完整的代码片段:
<form ref='uploadForm'
id='uploadForm'
action='/file-upload'
method='post'
class="dropzone"
encType="multipart/form-data" name="sampleFile">
</form>
<script>
document.addEventListener("DOMContentLoaded", function () {
Dropzone.options.uploadForm = {
autoProcessQueue: false,
addRemoveLinks: true,
acceptedFiles: 'image/*',
resizeWidth: 800,
resizeMimeType: 'image/jpeg',
maxFiles: 3,
init: function () {
var submitButton = document.getElementById('addItem-btn')
myDropzone = this;
submitButton.addEventListener("click", function () {
var item_id = 'i_' + Math.random().toString(36).substr(2, 12);
getAdditionalItem(undefined, function (result) {
if (result === undefined) {
console.log("Callback failed...");
}
else {
addNewItem(result[0], result[1], item_id);
}
});
myDropzone.on('sending', function (file, xhr, uploadForm) {
uploadForm.append('user_id', localStorage.getItem("user_id")),
uploadForm.append('item_id', item_id)
});
myDropzone.processQueue();
myDropzone.on("successmultiple", function () {
alert("Attempt #1: All pics uploaded");
myDropzone.removeAllFiles();
});
});
myDropzone.on("successmultiple", function () {
alert("Attempt #2: All pics uploaded");
myDropzone.removeAllFiles();
});
},
successmultiple: function () {
alert("Attempt #3: All pics uploaded");
myDropzone.removeAllFiles();
}
}
});
</script>
当我执行此代码时,所有图片都已上传,但未触发任何警报,并且未清理 dropzone 表单。
我也尝试使用带有 的queuecomplete
事件removeAllFiles()
,但也没有结果。