webupload上传插件中,单个文件上传处理

上传插件如何使用,我这里就不多说了,网上大把教程。今天我要讲的是如何限制上传一个文件,以及当文件选择错误是,再重新选择文件导致的问题。

默认给上传插件支持多文件上传,但是我们有很多需求是之上传单个文件,下面就来一起学习学习吧!

插件html

<div class="form-group">
    <label for="img" class="control-label col-sm-2"><span class="require_red">*&nbsp;&nbsp;</span>奖品图片:</label>
     <div id="uploader" class="wu-example col-sm-10 col-md-4">
     <input type="hidden" name="img" id="img" value="{{$resData['award_pic_normal']}}">
     <!--预览-->
     <div id="preview" class="uploader-list" style="margin-bottom: 3px"><img src="{{ $resData['award_pic_normal']}}" alt=""></div>
     <div id="picker" class="col-sm-5 col-md-3">选择文件</div>
     <div id="ctlBtn" class="btn btn-primary" style="height: 40px">开始上传</div>
         <span class="require_red font-size">图片尺寸255x255,透明背景</span>
     </div>
</div>

插件初始化:

 var uploader = WebUploader.create({
            auto:false,

            // swf文件路径
            swf: "{{ asset("plugins") }}/webuploader-0.1.5/Uploader.swf) ",

            // 文件接收服务端。
            server: "{{url('/ad/upload/img')}}",

            // 选择文件的按钮。可选。
            // 内部根据当前运行是创建,可能是input元素,也可能是flash.
            pick: {
                id:'#picker',
                multiple:false  //限制多文件上传
            },
            accept:{
                title:'Images',
                extentions: "png,jpeg,jpg",
                mimeTypes: 'image/jpg,image/jpeg,image/png'
            },
            formData:{
                '_token':'{{csrf_token()}}'//laravel框架必不可少的
            },
            fileVal:"img",
            // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
            resize: false,
            fileNumLimit: 1
        });

只需把multiple的值设为false,且fileNumLimit文件个数设为1,但是,这里还没完,如果运营在选择图片时选择错误,再点击选择图片时,图片不会替换掉,只能刷新再选择,显然这样体验是很不好的(会被人在心里默默骂死)。

所以还得加上下面关键一步:

 // 当有文件添加进来的时候
        uploader.on( 'fileQueued', function( file ) {
            // 创建缩略图
            // 如果为非图片文件,可以不用调用此方法。
            uploader.makeThumb( file, function( error, src ) {
                if ( error ) {
                    layer.msg('不能预览');
                    return;
                }
                $("#preview").html("<img src='"+src+"'>");
            }, 100, 100 );
            //删除错误的第一个文件
            $("#picker").on("click",function () {
                uploader.removeFile(file);
            })
        });
        //点击上传
        $("#ctlBtn").on("click",function () {
            uploader.upload();
        })
        // 文件上传成功,给item添加成功class, 用样式标记上传成功。
        uploader.on( 'uploadSuccess', function( file , msg ) {
            $( '#'+file.id ).addClass('upload-state-done');
            // 把服务器返回的图片地址保存到隐藏域
            if(msg.status ="SUCCESS"){
                layer.msg('上传成功',{icon:1,time:2000});
                $('input[name=img]').val( msg.fileUrl );
            }else{
                layer.msg("上传失败",{icon:2,time:3000});
            }

        });
        // 文件上传失败,显示上传出错。
        uploader.on( 'uploadError', function( file ) {
            var $li = $( '#'+file.id ),
                $error = $li.find('div.error');

            // 避免重复创建
            if ( !$error.length ) {
                $error = $('<div class="error"></div>').appendTo( $li );
            }

            $error.text('上传失败');
        });

$("#picker").on("click",function () {
    uploader.removeFile(file);
})  

该代码的含义是:给选择按钮添加点击事件,目的是删除队列中已有的文件,这样就可以替换原来错误的文件了,亲试有效!!

新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
https://cloud.tencent.com/redirect.php?redirect=1040&cps_key=8ee0f9c89dfe0958071ea9b77e110670&from=console

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Webupload是一款强大的文件件,它可以实现各种文件类型的上功能。完美版指的是该件具备了所有需要的功能,并且可以直接拿来使用,无需进行任何修改。 Webupload的完美版具有以下特点和优势: 1. 多文件:该件可以同时上多个文件,用户可以一次性选择多个文件进行上,大大提高了上效率。 2. 断点续:如果上过程出现网络断或其他异常情况,Webupload可以自动恢复上进度,避免重新上已上的部分,节省用户的时间和流量。 3. 文件预览:在选择文件后,Webupload可以提供文件预览功能,方便用户确认选择的文件是否正确。 4. 上进度显示:件会实时显示文件的进度,让用户清楚了解上的状态,避免长时间等待和不确定性。 5. 上验证:Webupload可以对上文件进行验证,确保只接受合法的文件格式和大小,保护服务器资源和数据安全。 6. 并发控制:件可以控制并发上的数量,有效解决服务器和网络的负载压力,保障上的稳定性。 7. 兼容性强:Webupload兼容各种浏览器和操作系统,无论是在PC端还是移动端,都可以正常运行。 通过使用Webupload的完美版,用户可以轻松实现文件功能,无需进行繁琐的编码和配置工作。这大大节省了开发时间和精力,帮助开发人员更快速地搭建网站或应用。同时,Webupload的完美版还可以通过自定义配置,满足特定需求,具备灵活性和可扩展性。总之,Webupload的完美版是一款功能全面、稳定可靠的文件件,使用简单方便,适用于各种Web开发项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值