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 相关文章推荐
JQuery 图片延迟加载并等比缩放插件
Nov 09 Javascript
jquery学习笔记二 实现可编辑的表格
Apr 09 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
jquery制作select列表双向选择示例代码
Sep 02 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
JavaScript中定义对象原型的两种使用方法
Dec 15 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
vue绑定事件后获取绑定事件中的this方法
Sep 15 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
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
PHP数组操作类实例
2015/07/11 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python同步两个文件夹下的内容
2019/08/29 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
户外活动策划方案
2014/03/12 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android