所以我使用 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。这意味着此尝试仅在一次上传一个文件时才有效。
所以,我的问题是:获取队列中剩余文件数量的最佳方法是什么,或者最终(甚至更好)每次队列完成时调用一个事件?我知道很多人都有这个问题,但我还没有找到一个我能够找到工作的解决方案!
谢谢!