jQuery Plupload限制上传次数

我一直在研究这段代码,现在试图让它正常工作。 我想限制使用上传更多2张图片。

line var upa = $('.uploader').plupload('getUploader'); 它给出了Uncaught TypeError的错误:Object [object Object]没有方法’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 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'); }); 

上传图像时会生成错误。 我不知道我错过了什么,但对此的任何帮助都非常感谢。

你想要实现的目标while (i<=upa.files.length) { block对我来说并不清楚。 好像你的页面上有几个上传者,但我无法理解这个想法。

无论如何,我想这应该可以解决问题,因为在一个上传器中限制为最多2个文件。

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

希望这会有所帮助

好回答jbl。 我稍微调整了你的解决方案,使其更通用,并在需要时重新出现“添加文件”按钮。

 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设置的一部分

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