【问题标题】:how to read list of files queued for dropzone and upload them in order如何读取排队等待dropzone的文件列表并按顺序上传
【发布时间】:2014-01-25 01:07:20
【问题描述】:

我正在使用(拖放)dropzone.js 上传多张图片

这里我保留了autoProcessQueuefalse 来进行自定义上传。

现在我正在寻找如何获取我选择上传的队列列表。原因是我需要一个接一个地上传文件,以便保持顺序。我可以将选项 parallelUploads 保留为 1,以便文件一个接一个地上传,但这里的问题是第二个文件没有等待前一个文件的响应。

也就是说,在上传服务器的过程中,第二个正在处理,如果它的大小小于第一个,则在前一个文件之前先上传。

请问有什么答案吗?

【问题讨论】:

    标签: jquery file-upload drag-and-drop dropzone.js


    【解决方案1】:

    我最近一直在使用dropzonejsSlickGrid,我遇到了文件排序挑战以及在所有文件上传之前触发的事件。 当您使用默认值时,它将分离所有上传,因此要允许多个文件,您需要设置 uploadMultiple 参数。 您可以通过设置paralellUploads 参数来控制您支持的并行上传数量。我似乎记得它默认为两个。诀窍是在处理响应之前等待所有上传完成。 我意识到您希望保留要上传的文件的顺序,但我真的认为您希望按顺序处理响应。强制他们按顺序上传会消除任何并行上传的优势。

    我添加了两个处理程序 一个用于在响应完成时保存响应(每个并行上传块都会产生其中一个

    myDropzone.on("successmultiple", function(file,response) { 
      save_responses(response); 
    });
    

    还有一个人在完成后处理它们。

    myDropzone.on("completemultiple", function() {
      if (this.getQueuedFiles().length == 0 && 
          this.getUploadingFiles().length == 0) {
        process_responses(this.getAcceptedFiles());
      }
    });
    

    如果您怀疑文件的顺序不正确,您可以随时检查 event.dataTransfer.files 数组

    【讨论】:

    • 我正在尝试这段代码,但它对我不起作用。我需要放置区队列中的文件名。此数据将在提交期间传递给 PHP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2020-02-18
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    相关资源
    最近更新 更多