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 解析url的search方法
Feb 09 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
使用store来优化React组件的方法
Oct 23 Javascript
vue中路由验证和相应拦截的使用详解
Dec 13 Javascript
js replace 全局替换的操作方法
Jun 12 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
微信小程序module.exports模块化操作实例浅析
Dec 20 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
layui输入框只允许输入中文且判断长度的例子
Sep 18 Javascript
Vue-CLI与Vuex使用方法实例分析
Jan 06 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
PHP clearstatcache()函数详解
2010/03/02 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
setTimeout学习小结
2017/02/08 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python基础教程之Hello World!
2014/08/29 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
SQL Server数据库笔试题和答案
2016/02/04 面试题
新闻专业个人自我评价
2013/09/21 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
五一劳动节活动记录
2014/03/23 职场文书
校庆活动方案
2014/03/31 职场文书
亲属关系公证书
2014/04/08 职场文书
建筑结构施工求职信
2014/07/11 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
锦旗赠语
2015/06/23 职场文书
立案决定书范文
2015/06/24 职场文书
2016国庆促销广告语
2016/01/28 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
Java 数组的使用
2022/05/11 Java/Android