首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery上传限制上传数量

jQuery上传限制上传数量
EN

Stack Overflow用户
提问于 2013-03-20 09:27:57
回答 2查看 8.7K关注 0票数 9

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

var upa = $('.uploader').plupload('getUploader'); it给出了一个错误:对象没有方法‘TypeError’

代码语言:javascript
复制
    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');
    });

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-20 17:54:05

我不清楚您想在while (i<=upa.files.length) {块中实现什么。看起来你的页面上有几个上传程序,但我不能理解。

无论如何,我想这应该会起作用,因为限制在单个上传程序中最多2个文件。

代码语言:javascript
复制
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
                    }
                },

希望这能有所帮助

票数 17
EN

Stack Overflow用户

发布于 2013-10-03 17:55:39

回答得很好,jbl。我对你的解决方案做了一些调整,使其更通用,并在需要时重新显示“添加文件”按钮。

代码语言:javascript
复制
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设置的一部分

代码语言:javascript
复制
$("#uploadBox").pluploadQueue({
  ...
  max_files: 2,
  ...
});
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15513689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档