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条件判断使用小技巧总结
Sep 08 Javascript
javascript贪吃蛇完整版(源码)
Dec 09 Javascript
jquery中load方法的用法及注意事项说明
Feb 22 Javascript
jQuery取得设置清空select选择的文本与值
Jul 08 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
Oct 01 Javascript
vue项目中定义全局变量、函数的几种方法
Nov 08 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
jquery插件实现搜索历史
Apr 24 jQuery
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判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
JavaScript 空位补零实现代码
2010/02/26 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
python解析xml文件操作实例
2014/10/05 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
django的ORM操作 增加和查询
2019/07/26 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python模拟实现斗地主发牌
2020/01/07 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
利用Python优雅的登录校园网
2020/10/21 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
大学自主招生自荐信
2013/12/16 职场文书
消防器材管理制度
2014/01/28 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
小小商店教学反思
2014/04/27 职场文书
个人工作表现自我评价
2015/03/06 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
z-index不起作用
2021/03/31 HTML / CSS
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers