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查看html源文件
Nov 08 Javascript
关于JavaScript的with 语句的使用方法
May 09 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
May 25 Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
简单实现js浮动框
Dec 13 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
PHP防CC攻击实现代码
2011/12/29 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python的设计模式编程入门指南
2015/04/02 Python
python中Genarator函数用法分析
2015/04/08 Python
python文件编写好后如何实践
2020/07/07 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
白酒业务员岗位职责
2013/12/27 职场文书
函授生自我鉴定
2014/03/25 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
贷款委托书
2014/08/01 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python