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 异步调用框架 (Part 1 - 问题 &amp; 场景)
Aug 03 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
Sep 29 Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
vue插槽slot的理解和使用方法
Apr 03 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
javascript实现数字时钟效果
Feb 06 Javascript
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
德生S2000电路分析
2021/03/02 无线电
自己前几天写的无限分类类
2007/02/14 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
php实现微信支付之现金红包
2018/05/30 PHP
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
社区端午节活动方案
2014/01/28 职场文书
动员大会主持词
2014/03/20 职场文书
简单租房协议书
2014/04/09 职场文书
战略合作协议书范本
2014/04/18 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
煤矿安全协议书
2014/08/20 职场文书
财产分割协议书范本
2014/11/03 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书