基于JQUERY使用FLASH的AJAX上传进度条插件uploadify
无论是做个人产品还是商业产品,一个好的用户体验必然给用户留下比较深刻的影响,文件上传功能就是必不可少的一个用户体验。
比如现在一个使用场景:
一个电子商城,用户每次都要提交表单信息,每一次提交表单信息都会有一个10MB的附件,当用户点击提交按钮后,就是满满无期的等待时间。
所以一般WEB1.0的网站也很注意,把上传和普通表单提交分离了出来,但是这个并不能解决问题,然后我们又延伸出了AJAX提交表单的信息,当然这样应该也很好了。
但是对于一个大的文件而已,不管怎么提交方式,用户想要得到的是文件上传的进度。比如QQ邮箱都是支持上传附件显示进度提示的。
最近偶然一次机会看到一个JQUERY版本的上传插件uploadify,从官网下载了试用了下,配置很简单,用户界面也很友好,还支持多文件同时上传
官方资料:
官网主页:
http://www.uploadify.com/
相关配置参数:
http://www.uploadify.com/documentation/
默认下载是PHP版本的,部署到项目我做的步骤:
1.把上传处理修改为自己项目的上传处理(默认对文件格式没有任何安全过滤,所以这个要注意一下)
配置使用:
楼主使用的是最新版本v2.1.4,参数和老版本有些不同,比如sizeLimit现在就是queuesizeLimit,在看到的一些配置不是最新的,楼主复制就拿来用,调试半天不行,悲剧啊 %>_<%
v2.1.4版本在Header部分加入:
<link href="/Public/javascript/uploadify/uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="/Public/javascript/jquery.js"></script>
<script type="text/javascript" src="/Public/javascript/uploadify/swfobject.js"></script>
<script type="text/javascript" src="/Public/javascript/uploadify/jquery.uploadify.v2.1.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {$('#file_upload').uploadify({'uploader' : '/Public/javascript/uploadify/uploadify.swf', // 默认上传主体文件'script' : '/Public/javascript/uploadify/uploadify.php', // 默认处理上传文件'cancelImg' : '/Public/javascript/uploadify/cancel.png', // 取消上传图片'folder' : '/Data/', // 上传到服务器的保存目录,默认/'multi' : true, // 多文件上传'simUplaodLimit' : 5, // 多文件上传时候支持的最大文件数量型'queuesizeLimit' : 3, // 上传文件大小控制'auto' : false, // 选定文件是否自动上传'onCancel' : function(event,ID,fileObj,data){alert('The upload of ' + fileObj.name + ' has been canceled!');}});
});
</script>
Body加入:
<input id="file_upload" name="file_upload" type="file" />
<input type="button" name="upload" id="upload" value="uplaod files" οnclick="$('#file_upload').uploadifyUpload();"/>
支持中文:
在使用的时候发现一个错误提示是英文的,还有图片默认是select imges,但是当你修改为"上传文件'的时候,出来的是乱码,原来是SWF默认转换了编码
解决方法:使用buttonImg属性,用图片代替按钮文字,然后使用 wmode=transparent把图片属性修改为透明即可。
上传完毕返回文件路径:
/*
ID
The unique ID of the file queue item.fileObj
An object containing the file information.[name] - The name of the uploaded file
[filePath] - The path on the server to the uploaded file
[size] – The size in bytes of the file
[creationDate] – The date the file was created
[modificationDate] – The last date the file was modified
[type] – The file extension beginning with a ‘.’
response
The text response sent back from the back-end upload script.data
An object containing general data about the upload and the queue.[fileCount] - The number of files remaining in the queue
[speed] - The average speed pf the file upload in KB/s
*/$('#file_upload').uploadify({'uploader' : '/uploadify/uploadify.swf','script' : '/uploadify/uploadify.php','cancelImg' : '/uploadify/cancel.png','folder' : '/uploads','multi' : true,'onComplete' : function(event, ID, fileObj, response, data) {alert('There are ' + data.fileCount + ' files remaining in the queue.');}
});
注意:
当设置multi:true的时候,设置simUploadLimit不应过多,因为无论你设置同时上传几个文件,它都会一个一个去请求并上传,只是表面上感觉好像有多个线程同时在处理上传请求一样,只是表象而已。而且如果你把simUploadLimit设置过大就会经常出错,我设置成5的时候经常会有一两个文件上传失败。
配置参数一览:
uploadify提供了常用配置参数、触发事件和方法调用
Options:
auto: 自动上传
buttonImg: 按钮图片,使用该属性可以解决按钮不支持中文功能
buttonText: 按钮文字
cancellmg: 取消图片
cancellmg: 取消图片
checkScript:判断上传选择的文件在服务器是否存在的后台处理程序的相对路径,无需修改
displayData:可是设置为上传速度或者上传百分比
expressInstall:没有安装FLASH调用的安装程序,不用修改
fileDataName: 文件域的名称
fileDesc: 点击浏览的时候弹出框筛选的文件格式提示
fileExt:点击浏览的时候弹出框筛选的文件格式如:(*.jpg,*.gif)
folder: 上传保存文件,一般不用,我们会用自己的上传程序处理
height: - 文件域高度
hideButton: 隐藏按钮,通过CSS可设置另一个按钮
method: 上传方式(GET/POST)
multi:是否支持多文件上传
queueID:唯一的ID号,多文件上传不是线程上传,会发送N个单独的POST请求
queueSizeLimit: 同一个队列的最大上传数量
removeCompleted: 上传成功后是否隐藏上传队列
rollover: 设置按钮HOVER效果
script: 上传服务端处理页面,一般是自己项目的处理页面
scriptAccess:FLASH的文件的访问权限,本机测试可以修改为Always
scirptData: 提交表单的附带参数
simUploadLimit: 上传文件的最大数量
sizeLimit:上传文件大小控制
uploader: 上传按钮路径
width: 文件域宽度
wmode: 使用该属性可以使自己添加的图片实现透明(wmode:transparent)
Events:
onAllComplete:所有上传完成后调用
onCancel: 取消时候调用
onCheck: 检测的时候调用
onClearQueue:清除上传队列时候调用
onComplete:单个完成调用
onError:出现错误调用
onOpen:当上传开始时
onProgress: 每当上传发生变化时
onInit:第一次加载时候
onQueueFull:队列达到最大设置值时
onSelect:添加一个新队列时
onSelectOnce:一个文件或者一组文件添加到队列时
onSWFReady:当SWF文件加载完毕
Methods:
.uploadify() - 创建一个上传,所以就支持页面多个调用啦
.uploadifyCancel() - 取消上传
.uploadClearQueue() - 清除已经选择的附件
.uplaodSettings() - 设置配置参数,一般在初始化的时候就已经设置好了,不常用
.uplaodUpload() - 调用上传,当auto =true的时候是会自动上传的
在TP项目环境下配置上传测试成功部分代码:
'uploader' : '/Public/javascript/uploadify/uploadify.swf', // 默认上传主体文件
'script' : '/Public/javascript/uploadify/uploadify.php', // 默认处理上传文件
'cancelImg' : '/Public/javascript/uploadify/cancel.png', // 取消上传图片
'folder' : '/Data/', // 上传到服务器的保存目录,默认/
'multi' : true, // 多文件上传
'simUplaodLimit' : 5, // 多文件上传时候支持的最大文件数量型
'queuesizeLimit' : 3, // 上传文件大小控制
'auto' : false, // 选定文件是否自动上传
'onCancel' : function(event,ID,fileObj,data){
alert('The upload of ' + fileObj.name + ' has been canceled!');
}
转载于:https://www.cnblogs.com/gaoxu387/archive/2011/10/24/2222753.html
基于JQUERY使用FLASH的AJAX上传进度条插件uploadify相关推荐
- html ajax 上传进度条,ajax文件上传 带 进度条
HTML5 file 在选择上传文件的时候,根据需要可限制指定的文件类型(默认任意类型 ).在 input type="file" 加上 accept="指定要上传的文件 ...
- html如何显示上传进度条,HTML5 Ajax文件上传进度条如何显示
这篇文章主要介绍了HTML5 Ajax文件上传进度条是如何显示的,基于原生html5实现,不需要falsh支持,进度可以自定义显示,控制灵活,对HTML5上传进度条感兴趣的小伙伴们可以参考一下 原本打 ...
- php flash上传进度条,PHP_PHP+FLASH实现上传文件进度条相关文件 下载,PHP之所以很难实现上传进度条 - phpStudy...
PHP+FLASH实现上传文件进度条相关文件 下载 PHP之所以很难实现上传进度条是因为在我们上传文件到服务器的时候,要等到文件全部送到服务器之后,才执行相应的php文件.在这之前,文件数据保存在一个 ...
- jquery和php上传文件进度条,jQuery实现文件上传进度条特效_jquery
上传进度条通常是由前面jquery加后端了脚本器脚本来实现了,今天我们介绍的是一款基本php+jQuery实现文件上传进度条效果的例子,具体细节如下. 最近呢,一个项目做一个进度条的效果出来,这个之前 ...
- PHP + ajax 实现上传进度条、PHP 上传大视频
一.PHP + ajax 实现上传进度条 1.1 CSS 样式 根据自身调整哦! .processBar{display: inline-block;width: 0;height: 7px;left ...
- 基于vue element-ui 封装上传图片组件 功能:上传,删除,预览,上传图片水印,拖拽排序,上传进度条等
学习目标: 我们在开发后台时肯定避免不了上传图片的功能 例如: 上传图片回显 上传完成 : 预览查看 , 删除等 如果是图片列表,还可能让你拖动图片排序 有的后台项目可能要给图片添加水印,添加标记 有 ...
- 大文件上传 进度条显示(仿CSDN资源上传效果) .
浏览-选择文件-点击 "上传 "后,效果如下: 弹出透明UI遮罩层 并显示上传这个过程 我这里设置太透明了 效果不是很立体 文件结构如图: 说明:用到"高山来客" ...
- html资源文件记载进度条,HTML5矢量实现文件上传进度条
在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...
- 后台系统上传文件回显上传进度条
2019独角兽企业重金招聘Python工程师标准>>> 大家有必要看到文末 xhr传统的AJAX传输对象,在做后台系统的时候经常遇到文件上传的情景,以往的xhr已经能够应对文件表 ...
最新文章
- Nginx配置跨域请求 Access-Control-Allow-Origin *
- Maven最佳实践:版本管理
- 文件加密问题(中文字符)
- mysql 5.7.11 my.ini,mysql5.7以上版本配置my.ini的详细步骤
- 支持delete吗_Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL
- 并发下,使用redis防止数据重复插入(数据库未对表字段设置唯一情况下)
- 个人知识库的分类目录_搭建个人知识体系,让印象笔记成为我们的“第二大脑”!...
- uni-app获取屏幕高度和宽度
- Windows下如何正确清理C盘?
- 提出辞职可以用的五个理由推荐给大家
- mysql文本类型_mysql里存大量文本的数据类型是text吗?请详细说明一下
- 每日新闻丨工信部发布绿色数据中心技术产品目录;阿里巴巴核心系统100%上云;苹果产品路线图曝光...
- 攻防演练中防守方的防护措施.
- sketch里的ios控件_「插件」五分钟了解微信团队打造的 Sketch 插件 :WeSketch
- Python基础 F-03 函数-命名空间与作用域
- STM32遥控小车下位机及硬件连接部分(Keil MDK5平台的C++编程)
- cocos2d-x游戏开发屏幕横竖屏切换
- 【进阶篇】前端学习路线
- python-networkx库的使用1
- 下列叙述中正确的是 java语言_1. 下列关于JAVA语言特点的叙述中,错误的是[ ] A、Java是面向过程的编程语言...
热门文章
- SVD理论以及Python实现
- 牛顿法求根号数(Python)
- 复合五点高斯公式计算(Python实现)
- 正则表达式三 :编译
- android开发模式,Android开发中无处不在的设计模式
- java基本输入类型数据System.out.println()或System.out.print()
- [003]Reference in C++---C++引用基础知识篇
- (android控件)ListView的Item中设置按钮实现
- Markdown2.py And Pygments Test
- Android超简单的进度条源码