PLUpload获取剩余文件?

所以我正在使用PLUpload来上传文件。 但是,我遇到了一个问题。 我正在尝试在队列完成时触发事件。 我很亲密,但并不完全。 看这里:

$(function() { var files_remaining = 0; // Setup flash version $("#flash_uploader").pluploadQueue({ // General settings runtimes : 'flash', url : 'blah.php', max_file_size : '200mb', chunk_size : '1mb', // Flash settings flash_swf_url : 'plupload.flash.swf' }); var uploader = $("#flash_uploader").pluploadQueue(); uploader.bind('FilesAdded', function(up, file, res) { files_remaining++; }); uploader.bind('FileUploaded', function(up, file, res) { files_remaining--; if (files_remaining == 0) { alert('Complete!'); } }); }); 

注意最后两个.bind()使用。 基本上,我正在尝试更新变量以确定已上载了多少文件,然后在队列完成时找出(基于此)。 但是,您可能知道,FilesAdded不是基于每个文件运行,而是在将任意数量的文件添加到队列时运行。 如果添加了三个文件,则只会调用一次FilesAdded。 这意味着此尝试仅在一次上载一个文件时有效。

所以,我的问题是:什么是获得队列中剩余文件数量的最佳方法,或者最终(甚至更好)每次队列完成时调用一个事件? 我知道很多人都有这个问题,但我没有找到一个解决方案,我已经能够得到工作!

谢谢!

 $(function() { var files_remaining = 0; // Setup flash version $("#flash_uploader").pluploadQueue({ // General settings runtimes : 'flash', url : 'blah.php', max_file_size : '200mb', chunk_size : '1mb', // Flash settings flash_swf_url : 'plupload.flash.swf' }); var uploader = $("#flash_uploader").pluploadQueue(); uploader.bind('QueueChanged', function(up, files) { files_remaining = uploader.files.length; }); uploader.bind('FileUploaded', function(up, file, res) { files_remaining--; if (files_remaining == 0) { alert('Complete!'); } }); }); 

在FileUploaded事件中检查up.total.queued

 uploader.bind('FileUploaded', function(up, file, res) { if (up.total.queued == 0) { alert('Complete!'); } });