2013-03-20 7 views
9

Şu anda bu kod üzerinde çalışıyor ve düzgün çalışmaya çalışıyor. Kullanımın toplamda 2 resim daha yüklemesini kısıtlamak istiyorum.jQuery Plupload kısıtlama sayısı

bu yakalanmamış TypeError bir hata verir hattı var upa = $('.uploader').plupload('getUploader');: Nesne [nesne nesne] i resim yüklemek hata oluşturulur bir yöntem 'plupload'

var maxfiles=2; 
    $('.uploader').each(function(){ 
     var $uploader = $(this); 
     $uploader.pluploadQueue($.extend({ 
      runtimes: 'html5,flash,html4', 
      url : '../admin/extras/upload.php', 
      max_file_size : '2mb', 
      chunk_size : '2mb', 
      unique_names : true,     
      filters : [ 
       {title : "Image files", extensions : "jpg"} 
      ], 
      resize : {width : 800, height : 600, quality : 90}, 
      flash_swf_url : 'js/mylibs/forms/uploader/plupload.flash.swf', 
      init : { 
       FilesAdded: function(up, files) { 
        plupload.each(files, function(file) { 
         if (up.files.length > maxfiles) { 
          up.removeFile(file); 
         } 
         var upa = $('.uploader').plupload('getUploader'); 
         var i = 0; 
         while (i<=upa.files.length) { 
          ultimo = upa.files.length; 
          if (ultimo > 1) { 
           if (i > 0) { 
            ultimo2 = ultimo - 1; 
            ii = i-1; 
            if (ultimo2 != ii) { 
             if (up.files[ultimo - 1].name == upa.files[i-1].name) { 
              up.removeFile(file); 
             } 
            } 
           } 
          } 
          i++; 
         } 
        }); 
        if (up.files.length >= maxfiles) { 
         $('#uploader_browse').hide("slow"); 
        } 
       }, 
       FilesRemoved: function(up, files) { 
        if (up.files.length < maxfiles) { 
         $('#uploader_browse').fadeIn("slow"); 
        } 
       } 
      } 
     })); 
     $uploader.find('.plupload_button').addClass('button grey btn'); 
     $uploader.find('.plupload_add').addClass('icon-plus'); 
     $uploader.find('.plupload_start').addClass('icon-ok'); 
    }); 

sahiptir. Neyi kaçırdığımı bilmiyorum ama bu konuda herhangi bir yardım büyük beğeni topluyor.

cevap

15

while (i<=upa.files.length) { bloğundaki başarmak istediğiniz şey bana açık değildir. Sayfanızda birkaç yükleyiciniz var gibi görünüyor, ancak fikri anlayamıyorum.

Her neyse, sanırım bu tek bir yükleyicide maksimum 2 dosya ile sınırlamak için hile yapmalıdır. Bu

+0

ayarları. Kodlarını forumlarından aldım. Bu düzenleme girişiniz için mükemmel bir şekilde teşekkür etti. –

7

İyi cevap JBL yardımcı olacaktır

FilesAdded: function(up, files) { 
        var maxfiles = 2; 
        if(up.files.length > maxfiles) 
        { 
         up.splice(maxfiles); 
         alert('no more than '+maxfiles + ' file(s)'); 
        } 
        if (up.files.length === maxfiles) { 
         $('#uploader_browse').hide("slow"); // provided there is only one #uploader_browse on page 
        } 
       }, 

Umut. Çözünürümüzü biraz daha genel hale getirmek için birazcık değiştirdim ve gerektiğinde 'Dosya ekle' düğmesini tekrar göstereceğim.

uploader.bind('FilesAdded', function(up, files) { 
    if (up.files.length >= up.settings.max_files) { 
    up.splice(up.settings.max_files); 
    $(up.settings.browse_button).hide(); 
    } 
}); 

uploader.bind('FilesRemoved', function(up, files) { 
    if (up.files.length < up.settings.max_files) { 
    $(up.settings.browse_button).show(); 
    } 
}); 

max_files pluploadQueue parçasıdır ben sadece js ve jQuery ile çalışmaya başladı JavaScript adam değil php adamım

$("#uploadBox").pluploadQueue({ 
    ... 
    max_files: 2, 
    ... 
}); 
+0

'up.settings.browse_button', gözat düğmesinin kimliğini içerir. Çalışması için bir kimlik seçici eklemeliydim. Yani, $ ('#' + up.settings.browse_button) .hide(); 'kullanın – anfuerer