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中append、insertBefore、after与insertAfter的简单用法与注意事项
Apr 04 Javascript
关于JS控制代码暂停的实现方法分享
Oct 11 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
原生JS轮播图插件
Feb 09 Javascript
小程序实现留言板
Nov 02 Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 Javascript
Vue使用mixin分发组件的可复用功能
Sep 01 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
JavaScript观察者模式原理与用法实例详解
Mar 10 Javascript
javascript实现点击小图显示大图
Nov 29 Javascript
关于vue中如何监听数组变化
Apr 28 Vue.js
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/07/23 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
php生成word并下载代码实例
2019/03/15 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
兼容ie和firefox js关闭代码
2008/12/11 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
利用python代码写的12306订票代码
2015/12/20 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python将数组n等分的实例
2019/12/02 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
python之语音识别speech模块
2020/09/09 Python
python之随机数函数的实现示例
2020/12/30 Python
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
大学生自我评价范文
2015/03/03 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python