2013-11-09 2 views

답변

1

전 세계적으로 각 큐에 FilesAdded 이벤트를 모니터링 할 사용자 정의 이벤트를 통해, 별도의 객체를 사용할 수있다 :

<div id="container1"></div> 
<div id="container2"></div> 

그것을 두 div의 5 개 파일의 글로벌 한계로, 예를 들어

다음 스크립트로 이어질 것입니다 : 당신은 또한 처리해야 할 수 있습니다

<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> 

참고이 (가) monitori 파괴 업 로더의 등록을 취소하기 위해 업 로더에 이벤트를 파괴 개체 :