所以,我已经花了几个小时看网络寻找这个问题的解决方案,我尝试了许多不起作用的东西。 任何人都可以告诉我如何允许Plupload接受多个队列,同时我限制用户可以上传的文件数量?
答案 0 :(得分:1)
您可以使用单独的对象通过自定义事件全局监视每个队列中的FilesAdded事件:
例如,有两个div,全局限制为5个文件:
<div id="container1"></div>
<div id="container2"></div>
这将导致以下脚本:
<script language="javascript">
$(document).ready
(
function(){
// monitoring object
var uploadersMonitor =
{
uploaders : [], // uploader objects will be store in this array
maxFiles : 5, // no more than 5 files globally
registerUploader : function (upldr){
if(uploadersMonitor.uploaders.indexOf(upldr)==-1){
uploadersMonitor.uploaders.push(upldr);
}
},
computeTotalFilesNumber : function(){
var sum=0;
for(var i = 0; i<uploadersMonitor.uploaders.length; i++){
sum+=uploadersMonitor.uploaders[i].files.length;
}
return sum;
},
processFilesAdded : function(upldr){
var total = uploadersMonitor.computeTotalFilesNumber();
if(total> uploadersMonitor.maxFiles)
{
alert('No more than '+uploadersMonitor.maxFiles+'total')
// remove excess files
upldr.splice(upldr.files.length-(total-uploadersMonitor.maxFiles));
}
}
}
$(document).on("uploaderFilesAdded",
function(e,upldr){
uploadersMonitor.registerUploader(upldr);
uploadersMonitor.processFilesAdded(upldr);
}
);
function initUploader(item){
$(item).pluploadQueue({
runtimes: 'html5,flash,gears,silverlight,browserplus',
url: '/upload.php',
max_file_size: '10mb',
init: {
FilesAdded : function (upldr,files){
$(document).trigger("uploaderFilesAdded",upldr);
}
}
});
};
initUploader($('#container1'));
initUploader($('#container2'));
});
</script>
请注意,您可能还需要在上传程序中处理Destroy事件以在监视对象中取消注册已销毁的上载程序