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 相关文章推荐
解决JQeury显示内容没有边距内容紧挨着浏览器边线
Dec 20 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
Jul 08 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
js实现Select下拉框具有输入功能的方法
Feb 06 Javascript
JavaScript控制网页层收起和展开效果的方法
Apr 15 Javascript
Vue.js第二天学习笔记(vue-router)
Dec 01 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
Dec 12 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
React 组件间的通信示例
Jun 14 Javascript
js中async函数结合promise的小案例浅析
Apr 14 Javascript
js实现自动锁屏功能
Jun 02 Javascript
JS中如何优雅的使用async await详解
Oct 05 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
php错误日志简单配置方法
2016/07/11 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
Python File readlines() 使用方法
2018/03/19 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
python中pickle模块浅析
2020/12/29 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
绩效工资分配方案
2014/01/18 职场文书
求职毕业生自荐书
2014/02/08 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
销售口号大全
2014/06/11 职场文书
应届毕业生自荐书
2014/06/18 职场文书
森林防火宣传标语
2014/06/27 职场文书
刑事和解协议书范本
2014/11/19 职场文书
公司联欢会主持词
2015/07/04 职场文书
医院病假条范文
2015/08/17 职场文书
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技