2014-01-07 29 views
4

我使用(拖放)上传图片的倍数dropzone.js如何读排队悬浮窗的文件列表,并将其上传,以便

在这里,我不停的autoProcessQueuefalse进行自定义上传。

现在我正在寻找如何获取我选择上传的队列列表。原因是我需要一个接一个地上传文件,以便维护订单。我可以保留选项parallelUploads1,以便文件可以一个接一个地上传,但这里的问题是第二个文件不在等待前一个文件的响应。

这意味着,在上传服务器的过程中,第二个正在被处理,并且如果它的大小比第一个小,它会在上一个文件之前首先上传。

这个请求的任何答案..?

回答

5

我一直在最近与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数组

+0

我想这个代码,它不工作,我需要丢弃区域队列中的文件的名称。这些数据将在提交期间传递给PHP。 – user1794918