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 相关文章推荐
js树形控件脚本代码
Jul 24 Javascript
JS 页面自动加载函数(兼容多浏览器)
May 18 Javascript
js怎么判断flash swf文件是否加载完毕
Aug 14 Javascript
jQuery中animate动画第二次点击事件没反应
May 07 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
May 13 Javascript
AngularJS 中文API参考手册
Jul 28 Javascript
微信小程序实现滑动删除效果
May 19 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
让微信小程序支持ES6中Promise特性的方法详解
Jun 13 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
bootstrap实现tab选项卡切换
Aug 09 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实现ODBC数据分页显示一例
2006/10/09 PHP
php5.3 废弃函数小结
2010/05/16 PHP
PHP 命名空间实例说明
2011/01/27 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
Vue指令指令大全
2019/02/09 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
Selenium的使用详解
2018/10/19 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
使用python实现kNN分类算法
2019/10/16 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
python在不同条件下的输入与输出
2020/02/13 Python
Python实现对adb命令封装
2020/03/06 Python
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
大学生毕业自我鉴定范文
2014/02/03 职场文书
邀请函的格式
2015/01/30 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Java中使用Filter过滤器的方法
2021/06/28 Java/Android