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 常见操作实现方式和常用函数方法总结
May 06 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
jQuery提交多个表单的小例子
Jun 30 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 Javascript
如何处理JSON中的特殊字符
Nov 30 Javascript
分析JS中this引发的bug
Dec 12 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
jQuery实现动态操作table行
Nov 23 jQuery
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基础学习之变量的使用
2011/06/09 PHP
php生成圆角图片的方法
2015/04/07 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
总结python爬虫抓站的实用技巧
2016/08/09 Python
python实现简单的文字识别
2018/11/27 Python
python数组循环处理方法
2019/08/26 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
荷兰本土平价百货:HEMA
2017/10/23 全球购物
面料业务员岗位职责
2013/12/26 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
机械操作工岗位职责
2014/08/08 职场文书
给领导敬酒词
2015/08/12 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
python标准库ElementTree处理xml
2022/05/20 Python