layui 上传文件限制数量优化

博客讲述了在使用Layui上传组件时遇到的问题,即用户可以超过最大上传数量。作者通过修改代码,在选择文件时进行数量检查,若超过限制则阻止上传,提供了一种无需修改Layui源码的解决方案。文章中提到的关键点包括设置`auto`为`false`以手动控制上传,以及在`choose`回调中实现数量检查和删除多余文件的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务场景:需要用户最多只能上传4个文件,第一次选择3个文件并上传成功,第二选择3个文件并上传成功,第三次选择3个文件,这时是触发限制数量条件(number)。现在需要解决第二次选择文件时就不能触发上传接口。

在网上搜索出很多解决方案都是改layui源码,我就不太想改。然后看到一篇文章——【使用Layui的upload上传文件在上传之前做逻辑处理并终止上传】受到启发,并优化自己代码。

//多图片上传
      var uploadInst = upload.render({
            elem: '#upload-file',
            url: '', 
            multiple: true,//多文件上传
            auto: false,//重点,不能自动上传,手动调用obj.upload
            // auto: true,
            number:4,
            choose:function (obj) {
                let curFiles = obj.pushFile();
                if (Object.keys(curFiles).length>upload_file_number){
                    layer.msg("超过文件上传限制数量");
                    obj.preview(function(index, file, result){
                        //删除多余的
                        delete curFiles[index] 
                    });

                }else{
                    obj.preview(function(index, file, result){
                        //这里预览图而已,可无视
                        $('#upload-preview').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" width="200" height="130" style="margin-right: 10px;">')
                        //手动调用文件上传接口
                        obj.upload(index, file);
                    });
                }


            },
            done: function(res){
                //上传完毕
                

            }
        });

就这,多断点打印吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值