jQuery Plupload限制上载数量

jQuery Plupload限制上载数量,jquery,plupload,Jquery,Plupload,我已经在这段代码上工作了一段时间,现在正试图让它正常工作。我想限制上传总共超过2张图片的使用 行var upa=$('.uploader').plupload('getUploader')它给出了一个未捕获的TypeError错误:对象[Object Object]没有“plupload”方法 var maxfiles=2; $('.uploader').each(function(){ var $uploader = $(this); $uplo

我已经在这段代码上工作了一段时间,现在正试图让它正常工作。我想限制上传总共超过2张图片的使用

var upa=$('.uploader').plupload('getUploader')它给出了一个未捕获的TypeError错误:对象[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<=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');
    });
var maxfiles=2;
$('.uploader')。每个(函数(){
var$uploader=$(这个);
$uploader.pluploadQueue($.extend({
运行时:“html5、flash、html4”,
url:“../admin/extras/upload.php”,
最大文件大小:“2mb”,
块大小:“2mb”,
唯一的名称:true,
过滤器:[
{标题:“图像文件”,扩展名:“jpg”}
],
调整大小:{宽度:800,高度:600,质量:90},
flash_swf_url:'js/mylibs/forms/uploader/plupload.flash.swf',
初始化:{
添加文件:函数(向上,文件){
plupload.each(文件、函数(文件){
如果(up.files.length>maxfiles){
up.removeFile(文件);
}
var upa=$('.uploader').plupload('getUploader');
var i=0;
而(一){
如果(i>0){
ultimo 2=ultimo-1;
ii=i-1;
如果(ultimo2!=ii){
if(up.files[ultimo-1].name==upa.files[i-1].name){
up.removeFile(文件);
}
}
}
}
i++;
}
});
如果(up.files.length>=maxfiles){
$('uploader'u browse').hide(“slow”);
}
},
删除文件:函数(向上,文件){
if(up.files.length

该错误是在我上载图像时生成的。我不知道我错过了什么,但是非常感谢在这方面的任何帮助

你想在
while(i好答案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();
  }
});

我是一个php人而不是JavaScript人我刚开始使用js和jQuery。我从他们的论坛上获得了代码。感谢您的输入,这个编辑工作得非常好。
up.settings.browse\u按钮
包含了浏览按钮的id。我必须添加一个id选择器才能工作。所以,使用
$('.\35;'+up.settings.browse\u按钮)。hide()
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();
  }
});
$("#uploadBox").pluploadQueue({
  ...
  max_files: 2,
  ...
});