jQuery插件WebUploader实现文件上传


Posted in Javascript onNovember 07, 2016

最近在项目中用到了百度的文件图片上传插件WebUploader,分享给大家。

WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。 采用大文件分片并发上传,极大的提高了文件上传效率。

需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUploader

// 初始化Web Uploader***上传图片 
var uploader = WebUploader.create({ 
 // 选完文件后,是否自动上传。 
 auto: true, 
 // 文件接收服务端地址,自动生成缩略图需要后端完成。 
 server: '/common/uploadFile?imageZip=1', 
 // 选择文件的按钮。可选。 
 // 内部根据当前运行是创建,可能是input元素,也可能是flash. 
 pick: '#sendimg', 
 fileNumLimit: 5, 
 //allowMagnify: false, 
 // 只允许选择图片文件。 
 accept:{ 
 title: 'Images', 
 extensions: 'gif,jpg,jpeg,bmp,png', 
 mimeTypes: 'image/*' 
 } 
}); 
// 当有文件添加进来的时候 
 uploader.on( 'fileQueued', function( file ) { 
 var $li = $( 
  '<div style="float:right" id="' + file.id + '" class="delimg">' + 
   '<img class="addimg"><div class="closeimg">×</div>' + 
  '</div>' 
  ), 
 $img = $li.find('img'); 
 
 // $list为容器jQuery实例 
 $("#piccon").append( $li ); 
 // 创建缩略图 
 // 如果为非图片文件,可以不用调用此方法。 
 // thumbnailWidth x thumbnailHeight 为 100 x 100 
 uploader.makeThumb( file, function( error, src ) { 
  if ( error ) { 
  $img.replaceWith('<span>不能预览</span>'); 
  return; 
  } 
 
  $img.attr( 'src', src ); 
 }, 100, 100 ); 
 $li.on('click', function() { 
  $(this).remove(); 
 }) 
 }); 
 // 文件上传过程中创建进度条实时显示。 
 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,response ) { 
  imgurl=response.fileName;//这里可以拿到后台返回的图片名称 
  //alert(imgurl); 
  $( '#'+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(); 
 });

更多精彩内容,请点击《jQuery上传操作汇总》,进行深入学习和研究。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
Oct 16 Javascript
JS简单操作select和dropdownlist实例
Nov 26 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
js给table赋值的实例代码
Oct 13 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
vue-cli3配置与跨域处理方法
Aug 17 Javascript
vue element 生成无线级左侧菜单的实现代码
Aug 21 Javascript
JS实现碰撞检测效果
Mar 12 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 #Javascript
AngularJS的ng Http Request与response格式转换方法
Nov 07 #Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 #Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 #Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 #Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
Nov 07 #Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 #Javascript
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP中单引号与双引号的区别分析
2014/08/19 PHP
分享php分页的功能模块
2015/06/16 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
PDO::quote讲解
2019/01/29 PHP
javascript eval函数深入认识
2009/02/21 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
测量工程专业求职信
2014/02/24 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
给医院的感谢信
2015/01/21 职场文书
学雷锋团日活动总结
2015/05/06 职场文书