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 相关文章推荐
javascript中的一些注意事项 更新中
Dec 06 Javascript
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
JS实现两表格里数据来回转移的方法
May 28 Javascript
javascript中select下拉框的用法总结
Jan 07 Javascript
Bootstrap作品展示站点实战项目2
Oct 14 Javascript
js+css3制作时钟特效
Oct 16 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
Webpack 4如何动态切割JS注入文件名详解
Jul 09 Javascript
vue3 源码解读之 time slicing的使用方法
Oct 31 Javascript
Vue双向数据绑定(MVVM)的原理
Oct 03 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调用Oracle存储过程
2006/10/09 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
Python yield使用方法示例
2013/12/04 Python
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
python用Configobj模块读取配置文件
2020/09/26 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
犯错检讨书
2014/02/21 职场文书
优秀广告词大全
2014/03/19 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
小学新教师个人总结
2015/02/05 职场文书
业务内勤岗位职责
2015/04/13 职场文书