Uploadify使用源码
上传图片页面绑定源码如下:
$("#uploadify").uploadify({
'uploader' : basePath+'commons/uploadfiles/uploadify.swf?var='+(new Date()).getTime(), // flash
// 文件
// 路径
'script' : userDataServer+'asyAgentUploadMaterials.action', // 请求的处理
// 的url
// ;
'fileDataName' : 'uploadify', // 后台 File xxx String
// xxxFileName 最好和input名字要一致
'cancelImg' : basePath+'commons/uploadfiles/cancel.png', // 取消按钮图片
'buttonImg' : basePath+'commons/uploadfiles/buttonImg.png',
'scriptData' :{'signcode' : signcode},
'queueSizeLimit' : 5,// 上传队列的上限
'fileDesc' : '支持格式:jpg/gif/jpeg/png/bmp.', // 如果配置了以下的'fileExt'属性,那么这个属性是必须的
'fileExt' : '*.jpg;*.gif;*.jpeg;*.png;*.bmp',// 允许的格式
// 弹出文件选择框的时候会自动过滤,只显示该类型的文件
'auto' : false, // 添加文件后是否立即上传
'multi' : true , // 多文件上传
'removeCompleted': false ,// 一个文件上传完是否移除该文件
'sizeLimit' : 1024*1024*4,// 文件大小的限制 以byte为单位 每个上传文件的大小
'wmode' : 'transparent',
'queueID' : 'uploadProgressBar',
'onError' : function (event,ID,fileObj,errorObj) {
var type = errorObj.type;
if(type && type.indexOf('Size') > -1){
alert("上传文件过大,超过4M!");
}else{
alert(errorObj.type + ' Error: ' + errorObj.info);
}
// 取消指定id的文件上传,然后把该文件移出队列
$('#uploadify').uploadifyCancel(ID);
},
'onQueueFull' : function (event,queueSizeLimit) {
alert("你一次最多只能上传5个文件!");
return false;
},
'onComplete' : function(event, ID, fileObj, response, data) {
var filenum=data.fileCount;
var title = fileObj.name;
var data = JSON.parse(response);
if (data.tip != null && data.tip != '') {
flaguploadfileinfofalse+=title+",";
}else {
var datumId=$("#datumId").val();
var tenderId=$("#tenderId").val(); var data = JSON.parse(response);
// console.log('ok');
}
if(filenum==0||filenum=='0'){
if(flaguploadfileinfofalse.length>0){
alert(flaguploadfileinfofalse.substring(0,flaguploadfileinfofalse.length-2)+":上传失败!请联系管理员!");
}else{
alert("上传图片成功!");
}
}
},
'onAllComplete' : function(event,data) {
$('#loading_all').hide();
$('#uploadify').uploadifyClearQueue();
// alert("上传图片成功 ");
reloadLeft();
$("#showUploadDiv").dialog("close");
}
});
涉及动态赋值问题:
/**
* 上传材料dialog
*
* @return
*/
function showUploadDatumDiv(){ var datumId = $("#datumId").val();
var tenderId = $("#tenderId").val();
if(datumId!=null&&datumId!=''&&tenderId!=null&&tenderId!=''){
$("#showUploadDiv").dialog("option", "title", "上传图片");// 添加模式窗口标题
$("#showUploadDiv").dialog("option", "buttons", // 添加两个按钮
{
"上传文件" : function() {
$('#loading_all').show();
$('#uploadify').uploadifySettings('scriptData',{'signcode' : signcode,'userID' : ownerid,'tenderId' : tid,'strMode' : datumId,'datumType' : endVal});
$('#uploadify').uploadifyUpload();
},
"关闭" : function() {
$(this).dialog("close");
}
});
$("#showUploadDiv").dialog('open');
}else{
alert("请点击要上传的材料类型!");
} }
Uploadify是JQuery的一个上传插件,API参数解析如下:
uploader:uploadify.swf文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf。
script:后台处理程序的相对路径 。默认值:uploadify.php
scriptData:上传到后台的参数,参数为json格式。
checkScript:用来判断上传选择的文件在服务器是否存在的后台处理程序的相对路径
fileDataName:设置一个名字,在服务器处理程序中根据该名字来取上传文件的数据。默认为Filedata
method:提交方式Post或Get,默认为Post
scriptAccess:flash脚本文件的访问模式,如果在本地测试设置为always,默认值:sameDomain
folder:上传文件存放的目录 。
queueID:文件队列的ID,该ID与存放文件队列的div的ID一致。
queueSizeLimit:当允许多文件生成时,设置选择文件的个数,默认值:999。
multi:设置为true时可以上传多个文件。
auto:设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。
fileDesc:这个属性值必须设置fileExt属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileDesc为“请选择rar doc pdf文件”,打开文件选择。
fileExt:设置可以选择的文件的类型,格式如:'*.doc;*.pdf;*.rar'。
sizeLimit:上传文件的大小限制 。
simUploadLimit:允许同时上传的个数 默认值:1。
buttonText:浏览按钮的文本,默认值:BROWSE。
buttonImg:浏览按钮的图片的路径。
hideButton:设置为true则隐藏浏览按钮的图片。
rollover:值为true和false,设置为true时当鼠标移到浏览按钮上时有反转效果。
width:设置浏览按钮的宽度,默认值:110。
height:设置浏览按钮的高度,默认值:30。
wmode:设置该项为transparent可以使浏览按钮的flash背景文件透明,并且flash文件会被置为页面的最高层。 默认值:opaque 。
cancelImg :选择文件到文件队列中后的每一个文件上的关闭按钮图标。
onInit: 做一些初始化的工作。
onSelect:选择文件时触发,该函数有三个参数,参数如下:
event:事件对象。
queueID:文件的唯一标识,由6位随机字符组成。
fileObj:选择的文件对象,有name、size、creationDate、modificationDate、type5个属性。
onSelectOnce:在单文件或多文件上传时,选择文件时触发。该函数有两个参数event,data,data对象有以下几个属性:
fileCount:选择文件的总数。
filesSelected:同时选择文件的个数,如果一次选择了3个文件该属性值为3。
filesReplaced:如果文件队列中已经存在A和B两个文件,再次选择文件时又选择了A和B,该属性值为2。
allBytesTotal:所有选择的文件的总大小。
onCancel: 当点击文件队列中文件的关闭按钮或点击取消上传时触发。该函数有event、queueId、fileObj、data四个参数,前三个参数同onSelect中的三个参数,data对象有两个属性fileCount和allBytesTotal。
fileCount:取消一个文件后,文件队列中剩余文件的个数。
allBytesTotal:取消一个文件后,文件队列中剩余文件的大小。
onClearQueue:当调用函数fileUploadClearQueue时触发。有event和data两个参数,同onCancel中的两个对应参数。
onQueueFull:当设置了queueSizeLimit并且选择的文件个数超出了queueSizeLimit的值时触发。该函数有两个参数event和queueSizeLimit。
onError:当上传过程中发生错误时触发。该函数有event、queueId、fileObj、errorObj四个参数,其中前三个参数同上,errorObj对象有type和info两个属性。
type:错误的类型,有三种‘HTTP’,‘IO’,or‘Security’
info:错误的描述
onOpen:点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列。该函数有event、queueId、fileObj三个参数,参数的解释同上。
onProgress:点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列,在onOpen之后触发。该函数有event、queueId、fileObj、data四个参数,前三个参数的解释同上。data对象有四个属性percentage、bytesLoaded、allBytesLoaded、speed:
percentage:当前完成的百分比
bytesLoaded:当前上传的大小
allBytesLoaded:文件队列中已经上传完的大小
speed:上传速率 kb/s
onComplete:文件上传完成后触发。该函数有四个参数event、queueId、fileObj、response、data五个参数,前三个参数同上。response为后台处理程序返回的值,data有两个属性fileCount和speed:
fileCount:剩余没有上传完成的文件的个数。
speed:文件上传的平均速率 kb/s
注:fileObj对象和上面讲到的有些不太一样,onComplete的fileObj对象有个filePath属性可以取出上传文件的路径。
onAllComplete:文件队列中所有的文件上传完成后触发。该函数有event和data两个参数,data有四个属性,分别为:
filesUploaded :上传的所有文件个数。
errors :出现错误的个数。
allBytesLoaded :所有上传文件的总大小。
speed :平均上传速率 kb/s
相关函数介绍:
在上面已说了uploadifyUpload和uploadifyClearQueue两个函数,除此之外还有几个函数:
uploadifySettings:可以动态修改上面介绍的那些key值,如下面代码:
$('#uploadify').uploadifySettings('folder','JS');
如果上传按钮的事件写成下面这样,文件将会上传到uploadifySettings定义的目录中
<a href="javascript:$('#uploadify').uploadifySettings('folder','JS');$('#uploadify').uploadifyUpload()">上传</a>
uploadifyCancel:该函数接受一个queueID作为参数,可以取消文件队列中指定queueID的文件。
$('#uploadify').uploadifyCancel(id);
Uploadify使用源码的更多相关文章
- 2014年5月份第1周51Aspx源码发布详情
郑州某高校学生考评系统源码 2014-5-5 [VS2008]功能介绍: 1.用户角色有部主任.教师.学生等. 2.可添加班级考评项目.学生考评项目. 3.可指定学生对班级.学生某考评项 ...
- 2014年4月份第2周51Aspx源码发布详情
HFC代码转化工具源码 2014-4-8 [VS2010]源码描述:HFC代码转化工具源码 1.主要实现HTML代码转化为C#或者JS代码,为我们平时编码节省时间. 2.把代码复制到面板上,通过右键 ...
- 2014年3月份第3周51Aspx源码发布详情
WPF翻书效果源码 2014-3-17 [VS2010]源码描述:WPF翻书效果源码:多点触控的一个Demo,利用鼠标可以实现图书翻页效果:适合新手学习研究. TL简单家具网新手源码 2014-3 ...
- 2013年9月份第1周51Aspx源码发布详情
大型B2B家具门户网源码 2013-9-6 [VS2008]功能描述: 1.门户信息管理 安全取数据即使数据库连接中断不会报错 2.稳定性 每句代码经过3次以上检查.此网站还在运营3年了,没有出过问 ...
- java crm 进销存 springmvc SSM 项目 系统 源码
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- java crm 进销存 springmvc SSM 项目 源码 系统
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- Java SSM 客户管理 商户 管理系统 库存管理 销售报表 项目源码
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- Java 商户管理系统 客户管理 库存管理 销售报表 SSM项目源码
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- Java SSM 商户管理系统 客户管理 库存管理 销售报表 项目源码
需求分析: 有个厂家,下面有很多代理商(商户或门头等),之前商户进货.库存.销售.客户资料等记录在excel表格中 或者无记录,管理比较混乱,盈利情况不明.不能有效了解店铺经营情况和客户跟踪记录 厂家 ...
随机推荐
- 深入理解JavaScript模拟私有成员
一般的面向对象语言C++或JAVA,对象都是有私有成员的.js中没有类的改变,同样也没有对象的私有成员这个概念.但是可以通过某些特殊写法,模拟出私有成员. 1.特权模式: (1)在构造函数内部声明的变 ...
- apache2.4 的安装
Apache2.4 安装包下载地址 http://httpd.apache.org/docs/current/platform/windows.html#down 选择ApacheHaus 进入后 这 ...
- C# 中的"yield"与 "yield break"使用
yield是C#为了简化遍历操作实现的语法糖,我们知道如果要要某个类型支持遍历就必须要实现系统接口IEnumerable,这个接口后续实现比较繁琐要写一大堆代码才能支持真正的遍历功能.举例说明 usi ...
- virtualbox使用相关问题
官方下载地址: http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html VirtualBox主 ...
- Android colors.xml 颜色列表
android 常用项 <?xml version="1.0" encoding="utf-8"?> <resources> <c ...
- vue - check-versions.js for semver
引入的是一个语义化版本文件的npm包,其实它就是用来控制版本的,详情见:https://www.npmjs.com/package/semver 用谷歌翻译npm文档 semver.valid('1. ...
- 小程序 的 textarea 组件 层级问题如何解决
像这样的 既然是定位(脱离文档流),为啥不加层级关系,层级关系不明确,很容易出现显示异常,给遮罩加z-index:10,弹出框加z-index:11 即可 解决方案参考: https:// ...
- .gnet标准
1 预祝 .gnet进军w3c!!!成为html5的标准 2 .gnet在进行压缩的时候.图片信息不会丢失 3 .gnet须要csdn.百度搜索.360.腾讯.新浪微博.各种视频软件的支持..! ...
- Android 6.0 超级简单的权限申请2 (Permission)
代码地址如下:http://www.demodashi.com/demo/13506.html 写在前面 上次写了一个权限申请的例子Android 6.0 超级简单的权限申请 (Permission) ...
- sharepoint admin svc must be running in order to create deployment timer job 若要创建计时器作业,必须执行SVC
sharepoint admin svc must be running in order to create deployment timer job 若要创建计时器作业.必须执行SVC ...