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 相关文章推荐
jQuery 相关控件的事件操作分解
Aug 03 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 Javascript
JavaScript中的迭代器和生成器详解
Oct 29 Javascript
JavaScript是如何实现继承的(六种方式)
Mar 31 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
Aug 01 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
Dec 08 Javascript
angularJS开发注意事项
May 26 Javascript
解决node-sass偶尔安装失败的方法小结
Dec 05 Javascript
小程序根据手机机型设置自定义底部导航距离
Jun 04 Javascript
微信小程序实现日历签到
Sep 21 Javascript
vue 中的动态传参和query传参操作
Nov 09 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
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
zend framework重定向方法小结
2016/05/28 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
vue中activated的用法
2021/01/03 Vue.js
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
详解numpy的argmax的具体使用
2019/05/27 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
我读书我快乐演讲稿
2014/05/07 职场文书
个人党性分析总结
2015/03/05 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
正确的理解和使用Django信号(Signals)
2021/04/14 Python
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS