Webuploader教程(一)------简单实用上传功能

webuplader是百度的一个前端开源上传插件,支持加密、分片上传。还是阔以的。
不过文档写的实在是不敢恭维,挫到爆,gettting start介绍快速开始,写的都是缺少东西的,直接复制下来是不可以运行的。
总结出一个经验,测试html最好还是使用jsp,不然修改了页面,浏览器上总是有缓存,清缓存是个很蛋疼的事情。
1. 引如外部资源 css,js文件
  这里${ctxStatic}不要管,这个只是spring项目中使用el表达式来写静态文件前缀了。使用的话,测试的话直接写死绝对路即可。

<span style="font-size:14px;"> <link href="${ctxStatic }/bootstrap-3.3.5-dist/css/bootstrap.min.css" type="text/css" rel="stylesheet"/>
 <link href="${ctxStatic }/webupload/css/webuploader.css" type="text/css" rel="stylesheet"/>
 <script type="text/javascript" src="${ctxStatic }/jquery/jquery-1.9.1.min.js"></script>
 <script type="text/javascript" src="${ctxStatic }/webupload/webuploader.min.js"></script>
 <script type="text/javascript" src="${ctxStatic }/bootstrap-3.3.5-dist/js/bootstrap.min.js"></script></span>


2.写容器DOM
用来放置webuploader的dom

<span style="font-size:14px;"><div id="uploader-demo">
    <!--用来存放item-->
    <div id="thelist" class="uploader-list"></div>
    <div>
     <div id="filePicker">选择图片</div>
     <button id="ctlBtn" class="btn btn-default">开始上传</button>
    </div>
</div>
</span>

3. 初始化webuploader组件,设置上传等事件监听。

<span style="font-size:14px;"><script type="text/javascript">
  $(function(){
   /*init webuploader*/
   var $list=$("#thelist");   //这几个初始化全局的百度文档上没说明,好蛋疼。
   var $btn =$("#ctlBtn");	 //开始上传
   var thumbnailWidth = 100;   //缩略图高度和宽度 (单位是像素),当宽高度是0~1的时候,是按照百分比计算,具体可以看api文档
   var thumbnailHeight = 100;

   var uploader = WebUploader.create({
       // 选完文件后,是否自动上传。
       auto: false,

       // swf文件路径
       swf: '${ctxStatic }/webupload/Uploader.swf',

       // 文件接收服务端。
       server: '/apm-web/a/test/',

       // 选择文件的按钮。可选。
       // 内部根据当前运行是创建,可能是input元素,也可能是flash.
       pick: '#filePicker',

       // 只允许选择图片文件。
       accept: {
           title: 'Images',
           extensions: 'gif,jpg,jpeg,bmp,png',
           mimeTypes: 'image/*'
       },
       method:'POST',
   });
   // 当有文件添加进来的时候
   uploader.on( 'fileQueued', function( file ) {  // webuploader事件.当选择文件后,文件被加载到文件队列中,触发该事件。等效于 uploader.onFileueued = function(file){...} ,类似js的事件定义。
       var $li = $(
               '<div id="' + file.id + '" class="file-item thumbnail">' +
                   '<img>' +
                   '<div class="info">' + file.name + '</div>' +
               '</div>'
               ),
           $img = $li.find('img');


       // $list为容器jQuery实例
       $list.append( $li );

       // 创建缩略图
       // 如果为非图片文件,可以不用调用此方法。
       // thumbnailWidth x thumbnailHeight 为 100 x 100
       uploader.makeThumb( file, function( error, src ) {   //webuploader方法
           if ( error ) {
               $img.replaceWith('<span>不能预览</span>');
               return;
           }

           $img.attr( 'src', src );
       }, thumbnailWidth, thumbnailHeight );
   });
   // 文件上传过程中创建进度条实时显示。
   uploader.on( 'uploadProgress', function( file, percentage ) {
       var $li = $( '#'+file.id ),
           $percent = $li.find('.progress span');

       // 避免重复创建
       if ( !$percent.length ) {
           $percent = $('<p class="progress"><span></span></p>')
                   .appendTo( $li )
                   .find('span');
       }

       $percent.css( 'width', percentage * 100 + '%' );
   });

   // 文件上传成功,给item添加成功class, 用样式标记上传成功。
   uploader.on( 'uploadSuccess', function( file ) {
       $( '#'+file.id ).addClass('upload-state-done');
   });

   // 文件上传失败,显示上传出错。
   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('上传失败');
   });

   // 完成上传完了,成功或者失败,先删除进度条。
   uploader.on( 'uploadComplete', function( file ) {
       $( '#'+file.id ).find('.progress').remove();
   });
      $btn.on( 'click', function() {
        console.log("上传...");
        uploader.upload();
        console.log("上传成功");
      });
  });
 </script></span>


  • 15
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值