jquery组件WebUploader文件上传用法详解


Posted in Javascript onOctober 23, 2020

WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件,下文来为各位演示一下关于jquery WebUploader文件上传组件的用法。

使用WebUploader还可以批量上传文件、支持缩略图等等众多参数选项可设置,以及多个事件方法可调用,你可以随心所欲的定制你要的上传组件。

jquery组件WebUploader文件上传用法详解

接下来我以图片上传实例,给大家讲解如何使用WebUploader。

HTML

我们首先将css和相关js文件加载。

<link rel="stylesheet" type="text/css" href="css/webuploader.css"> 
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> 
<script type="text/javascript" src="js/webuploader.min.js"></script>

然后我们需要准备一个按钮#imgPicker,和一个用来存放添加的文件信息列表的容器#fileList,在body中加入如下代码:

<div id="uploadimg"> 
 <div id="fileList" class="uploader-list"></div> 
 <div id="imgPicker">选择图片</div> 
</div>

JAVASCRIPT

首先创建Web Uploader实例:

var uploader = WebUploader.create({ 
 auto: true, // 选完文件后,是否自动上传 
 swf: 'js/Uploader.swf', // swf文件路径 
 server: 'upload.php', // 文件接收服务端 
 pick: '#imgPicker', // 选择文件的按钮。可选 
 // 只允许选择图片文件。 
 accept: { 
 title: 'Images', 
 extensions: 'gif,jpg,jpeg,bmp,png', 
 mimeTypes: 'image/*' 
 } 
});

接着监听fileQueued事件,即当有文件添加进来的时候,通过uploader.makeThumb来创建图片预览图。

uploader.on( 'fileQueued', function( file ) { 
 var $list = $("#fileList"), 
 $li = $( 
 '<div id="' + file.id + '" class="file-item thumbnail">' + 
 '<img>' + 
 '<div class="info">' + file.name + '</div>' + 
 '</div>' 
 ), 
 $img = $li.find('img'); 
 
 
 // $list为容器jQuery实例 
 $list.append( $li ); 
 
 // 创建缩略图 
 uploader.makeThumb( file, function( error, src ) { 
 if ( error ) { 
 $img.replaceWith('<span>不能预览</span>'); 
 return; 
 } 
 
 $img.attr( 'src', src ); 
 }, 100, 100 ); //100x100为缩略图尺寸 
});

最后是上传状态提示了,当文件上传过程中, 上传成功,上传失败,上传完成都分别对应uploadProgress, uploadSuccess,
uploadError, uploadComplete事件。

// 文件上传过程中创建进度条实时显示。 
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, res ) { 
 console.log(res.filePath);//这里可以得到上传后的文件路径 
 $( '#'+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(); 
});

到这里,我们就实现了一个简单的图片上传实例,点击“选择图片”会弹出文件选择对话框,当选择图片后,即进入上传图片流程,会将图片对应的缩略图现实在列表里。

常用选项设置与事件调用

Web Uploader提供了丰富的API选项设置与事件调用。

jquery组件WebUploader文件上传用法详解

jquery组件WebUploader文件上传用法详解

常用的事件说明:

jquery组件WebUploader文件上传用法详解

更多精彩内容,请点击《jQuery上传操作汇总》,《ajax上传技术汇总》进行深入学习和研究。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 定义function的三种方式小结
Oct 16 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
jquery 动态合并单元格的实现方法
Aug 26 Javascript
微信小程序 教程之模板
Oct 18 Javascript
JavaScript表单验证完美代码
Mar 02 Javascript
详解vuex 中的 state 在组件中如何监听
May 23 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 Javascript
Openlayers显示地理位置坐标的方法
Sep 28 Javascript
js 实现碰撞检测的示例
Oct 28 Javascript
vue+element ui实现锚点定位
Jun 29 Vue.js
Vue.js 和 MVVM 的注意事项
Nov 07 #Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 #Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 #Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 #Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
Nov 07 #Javascript
jQuery插件WebUploader实现文件上传
Nov 07 #Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 #Javascript
You might like
PHP脚本的10个技巧(6)
2006/10/09 PHP
php生成curl命令行的方法
2015/12/14 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
python搭建虚拟环境的步骤详解
2016/09/27 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
Python常用类型转换实现代码实例
2020/07/28 Python
python用Configobj模块读取配置文件
2020/09/26 Python
Django celery异步任务实现代码示例
2020/11/26 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
大班下学期幼儿评语
2014/12/30 职场文书
幼儿园教师求职信
2015/03/20 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
mysql如何查询连续记录
2022/05/11 MySQL