详解jQuery uploadify文件上传插件的使用方法
发布时间 - 2026-01-10 21:53:23 点击率:次uploadify这个插件是基于js里面的jquery库写的。结合了ajax和flash,实现了这个多线程上传的功能。

现在最新版为3.2.1。
在线实例
实例中用到的php文件UploaderDemo.php请在页面下方下载
引入文件
- <link rel="stylesheet" type="text/css" href="uploadify.css" />
- <script type="text/javascript" src="jquery.min.js"></script>
- <script type="text/javascript" src="jquery.uploadify.js"></script>
使用方法
<form>
<div id="queue"></div>
<input id="file_upload" name="file_upload" type="file" multiple="true">
</form>
<div id="uploadfiles"></div>
<div id="fileQueue" style="clear:both"></div>
<script type="text/javascript">
var timestamp = new Date().getTime();
var token = Math.floor(Math.random() * 1000) + timestamp;
$(function() {
$('#file_upload').uploadify({
'buttonText': '选择文件..',
'fileObjName': 'simplefile',
'method': 'post',
'multi': true,
'queueID': 'fileQueue',
//'uploadLimit': 2,
'fileTypeExts': '*.gif;*.png;*.jpg;*.bmp;*.jpeg;',
'buttonImage': '/static/js/uploadify/select.png',
'formData': {
'timestamp': timestamp,
'token': token
},
'swf': '/static/js/uploadify/uploadify.swf',
'uploader': '/static/php/UploaderDemo.php',
'onUploadStart': function() {
$imgHtml = '<img class="upload_load" src="/static/images/upload.gif" align="absmiddle" />';
$('#uploadfiles').append($imgHtml);
},
'onUploadSuccess': function(file, data, response) {
$('.upload_load').remove();
var json = $.parseJSON(data);
if (json.state == 'success') {
$imgHtml = '<span id="file_' + json.file_id + '">';
$imgHtml += '<a href="' + json.file + '" target="_blank">';
$imgHtml += '<img src="' + json.file + '" width="100" height="100" align="absmiddle"/>';
$imgHtml += '</a>';
$imgHtml += '<a href="javascript:uploadifyRemove("' + json.file + '")">删除</a>';
$imgHtml += '</span>';
$($imgHtml).appendTo('#uploadfiles');
} else {
alert(json.message);
}
},
'onQueueComplete': function() {
$('.upload_load').remove();
}
});
});
</script>
参数说明
| 属性名称 | 默认值 | 说明 |
| auto | true | 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。 |
| buttonClass | ” | 按钮样式 |
| buttonCursor | ‘hand' | 鼠标指针悬停在按钮上的样子 |
| buttonImage | null | 浏览按钮的图片的路径 。 |
| buttonText | ‘SELECT FILES' | 浏览按钮的文本。 |
| checkExisting | false | 文件上传重复性检查程序,检查即将上传的文件在服务器端是否已存在,存在返回1,不存在返回0 |
| debug | false | 如果设置为true则表示启用SWFUpload的调试模式 |
| fileObjName | ‘Filedata' | 文件上传对象的名称,如果命名为'the_files',PHP程序可以用$_FILES['the_files']来处理上传的文件对象。 |
| fileSizeLimit | 0 |
上传文件的大小限制 ,如果为整数型则表示以KB为单位的大小,如果是字符串,则可以使用(B, KB, MB, or GB)为单位,比如'2MB'; 如果设置为0则表示无限制 |
| fileTypeDesc | ‘All Files' | 这个属性值必须设置fileTypeExts属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileTypeDesc为“请选择rar doc pdf文件” |
| fileTypeExts | ‘*.*' | 设置可以选择的文件的类型,格式如:'*.doc;*.pdf;*.rar' 。 |
| formData | JSON格式上传每个文件的同时提交到服务器的额外数据,可在'onUploadStart'事件中使用'settings'方法动态设置。 | |
| height | 30 | 设置浏览按钮的高度 ,默认值 |
| itemTemplate | false | 用于设置上传队列的HTML模版,可以使用以下标签: instanceID – Uploadify实例的ID fileID – 列队中此文件的ID,或者理解为此任务的ID fileName – 文件的名称 fileSize – 当前上传文件的大小 插入模版标签时使用格式如:${fileName} |
| method | Post | 提交方式Post或Get |
| multi | true | 设置为true时可以上传多个文件。 |
| overrideEvents | 设置哪些事件可以被重写,JSON格式,如:'overrideEvents' : ['onUploadProgress'] | |
| preventCaching | true | 如果为true,则每次上传文件时自动加上一串随机字符串参数,防止URL缓存影响上传结果 |
| progressData | ‘percentage' | 设置上传进度显示方式,percentage显示上传百分比,speed显示上传速度 |
| queueID | false | 设置上传队列容器DOM元素的ID,如果为false则自动生成一个队列容器。 |
| queueSizeLimit | 999 | 队列最多显示的任务数量,如果选择的文件数量超出此限制,将会出发onSelectError事件。 注意此项并非最大文件上传数量,如果要限制最大上传文件数量,应设置uploadLimit。 |
| removeCompleted | true | 是否自动将已完成任务从队列中删除,如果设置为false则会一直保留此任务显示。 |
| removeTimeout | 3 | 如果设置了任务完成后自动从队列中移除,则可以规定从完成到被移除的时间间隔。 |
| requeueErrors | false | 如果设置为true,则单个任务上传失败后将返回错误,并重新加入任务队列上传。 |
| successTimeout | 30 | 文件上传成功后服务端应返回成功标志,此项设置返回结果的超时时间 |
| swf | ‘uploadify.swf' | uploadify.swf 文件的相对路径。 |
| uploader | uploadify.php | 后台处理程序的相对路径。 |
| uploadLimit | 999 | 最大上传文件数量,如果达到或超出此限制将会触发onUploadError事件。 |
| width | 120 | 设置文件浏览按钮的宽度。 |
| 事件名称 | 说明 |
| onCancel(file) |
当点击文件队列中文件的关闭按钮或点击取消上传时触发,file参数为被取消上传的文件对象 |
| onClearQueue(queueItemCount) | 当调用函数cancel方法时触发,queueItemCount参数为被取消上传的文件数量。 |
| onDestroy() | 当destory方法被调用时触发 |
| onDialogClose(queueData) |
当文件浏览框关闭时触发,如果将此事件被重写,则当向队列添加文件上传出错时不会弹出错误消息提示。 queueData对象包含如下属性:
|
| onDialogOpen() | 当文件选择对话框弹出时立即出发,但可能在文件选择对话框被关闭之前并不能全部执行。 |
| onDisable() | 当disable方法禁用Uploadify上传按钮时被调用时触发。 |
| onEnable() | 当disable方法启用Uploadify上传按钮时被调用时触发。 |
| onFallback() | 当Uploadify初始化过程中检测到当前浏览器不支持flash时触发。 |
| onInit() | 首次初始化Uploadify结束时触发。 |
| onQueueComplete(queueData) |
文件上传队列处理完毕后触发。 queueData对象包含如下属性:
|
| onSelect(file) |
选择文件后向队列中添加每个上传任务时都会触发。 |
| onSelectError(file, errorCode, errorMsg) |
选择文件后向队列中添加每个上传任务时如果失败都会触发。 file – 文件对象 errorCode – 错误代码如下:
errorMsg – 错误提示,可通过'this.queueData.errorMsg'定制 |
| onSWFReady() | Flash文件载入成功后触发。 |
| onUploadComplete(file) | 每个文件上传完毕后无论成功与否都会触发。 |
| onUploadError(file, errorCode, errorMsg, errorString) | 文件上传出错时触发,参数由服务端程序返回。 |
| onUploadProgress(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) |
处理上传队列的过程中会多次触发此事件,每当任务状态有更新时都会触发。
|
| onUploadStart(file) | 当文件即将开始上传时立即触发 |
| onUploadSuccess(file, data, response) |
当文件上传成功时触发
|
| 方法名称 | 说明 | 应用举例 |
| cancel(fileID, suppressEvent) |
取消队列中的任务,不管此任务是否已经开始上传
|
|
| destroy() | 销毁Uploadify实例并将文件上传按钮恢复到原始状态 |
|
| disable(setDisabled) |
禁用或启用文件浏览按钮 setDisabled – 设置为true表示禁用,false为启用 |
|
| settings(name, value, resetObjects) |
获取或设置Uploadify实例参数
|
|
| stop() | 停止当前正在上传的任务 |
|
| upload(fileID) | 立即上传指定的文件,如果fileID为'*'表示上传所有文件,要指定上传多个文件,则将每个文件的fileID作为一个参数 |
|
文件UploaderDemo.php下载
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# jquery
# uploadify
# 参数详解
# 详解
# Javascript使用uploadify来实现多文件上传
# uploadify java实现多文件上传和预览
# jQuery.uploadify文件上传组件实例讲解
# jQuery文件上传控件 Uploadify 详解
# ASP.NET多文件上传控件Uploadify的使用方法
# ASP.NET文件上传控件Uploadify的使用方法
# uploadify多文件上传参数设置技巧
# php+jQuery.uploadify实现文件上传教程
# jQuery文件上传插件Uploadify使用指南
# JavaScript Uploadify文件上传实例
# 上传
# 文件上传
# 设置为
# 多少个
# 上传文件
# 对话框
# 服务端
# 清空
# 第一个
# 多个
# 将会
# 弹出
# 重写
# 则可
# 此项
# 移除
# 默认值
# 后向
# 的是
# 首次
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用搬瓦工VPS快速搭建个人网站?
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
实例解析Array和String方法
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
如何快速搭建FTP站点实现文件共享?
利用python获取某年中每个月的第一天和最后一天
Linux后台任务运行方法_nohup与&使用技巧【技巧】
如何在Windows 2008云服务器安全搭建网站?
Java遍历集合的三种方式
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
详解jQuery中的事件
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
PHP 500报错的快速解决方法
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
Python正则表达式进阶教程_复杂匹配与分组替换解析
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Swift开发中switch语句值绑定模式
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
制作旅游网站html,怎样注册旅游网站?
如何在IIS中新建站点并配置端口与物理路径?
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何快速启动建站代理加盟业务?
Laravel如何实现文件上传和存储?(本地与S3配置)
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
音乐网站服务器如何优化API响应速度?
Python并发异常传播_错误处理解析【教程】
Laravel如何实现本地化和多语言支持?(i18n教程)
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
,网页ppt怎么弄成自己的ppt?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何在宝塔面板中修改默认建站目录?
高防服务器:AI智能防御DDoS攻击与数据安全保障
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Angular 表单中正确绑定输入值以确保提交与验证正常工作
三星、SK海力士获美批准:可向中国出口芯片制造设备
如何在搬瓦工VPS快速搭建网站?
如何在云服务器上快速搭建个人网站?
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Android 常见的图片加载框架详细介绍
如何在IIS服务器上快速部署高效网站?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理

