1

我的目标是将一堆图片上传到服务器,如果上传过程成功完成,然后清除表单。但是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(),但也没有结果。

4

0 回答 0