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 相关文章推荐
jQuery 滑动方法slideDown向下滑动元素
Jan 16 Javascript
JS获取当前网页大小以及屏幕分辨率等
Sep 05 Javascript
JavaScript面对国际化编程时的一些建议
Jun 24 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
jQuery grep()方法详解及实例代码
Oct 30 Javascript
微信小程序-详解数据缓存
Nov 24 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
Dec 19 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
JavaScript中重名的函数与对象示例详析
Sep 28 Javascript
微信小程序实现渐入渐出动画效果
Jun 13 Javascript
JS前端使用canvas实现物体的点选示例
Aug 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中for与foreach的区别分析
2011/03/09 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
python删除文件示例分享
2014/01/28 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
pandas重新生成索引的方法
2018/11/06 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python标准库os库的函数介绍
2020/02/12 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
为什么会有内存对齐
2016/10/10 面试题
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
2015年个人招商工作总结
2015/04/25 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技