【问题标题】:Determine when all files have uploaded successfully in dropzone.js判断 dropzone.js 中所有文件何时上传成功
【发布时间】:2016-08-23 13:48:15
【问题描述】:

我正在使用 dropzone.js 上传到我的网站。上传器处于模态,我想在所有文件上传成功后自动关闭。

为此,我使用以下代码:

buttonUpload.on("complete", function (file) {

    var remaining = buttonUpload.getRejectedFiles().length + buttonUpload.getQueuedFiles().length + buttonUpload.getUploadingFiles().length

    if (remaining == 0) {
        $("#modal-upload-file").modal('hide');
    }
});

我希望这段代码将失败、尚未上传和正在上传的文件数加在一起。如果该值为零,则模式关闭。

我能够确定buttonUpload.getRejectedFiles() 不包括在上传时收到错误的文件。通过阅读文档,我看不到检查每个文件是否已按我想要的方式成功上传的方法。我该怎么做?

【问题讨论】:

  • 有一个事件可以监听:dropzonejs.com/#event-queuecomplete
  • @a.j.当对每个文件都进行了尝试时,即使服务器以错误的 http 状态响应其中一些文件,也会触发此事件。
  • 如果在 on complete 处理程序中计数错误文件,然后在 event-queuecomplete 上计数,检查该计数是否 > 0

标签: javascript laravel file-upload dropzone.js


【解决方案1】:

这是我的解决方案。

成功后,文件从队列中移除:

buttonUpload.on("success", function(file) {
    buttonUpload.removeFile(file);
});

然后,当队列完成时,如果还有文件,它们就不是成功的。

buttonUpload.on("queuecomplete", function (file) {
    if (buttonUpload.getAcceptedFiles().length > 0) {
        $("#file-error-warning").slideDown();
    } else {
        $("#modal-upload-file").modal('hide');
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2015-12-05
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    相关资源
    最近更新 更多