文章出自Uploadify扩展配置使用http://www.wuyinweb.com/doc/52/57.aspx

在做项目中涉及多文件上传,经过筛选,选择了Uploaidify,但还涉及一个问题,就是对于上传的文件能够进行分类,又不想在页面加入多个Uploaidify控件,故稍做改造

效果如

具体改造代码主要代码

<div id="UploadBox">
<div class="ops">
<input type="file" name="uploadify" id="uploadify" />
<input type="button" id="btnUpload" value="" />
<input type="button" id="btnCancel" value="" />
</div>
<div id="fileQueue"></div>
</div>
<!--文件类型框 -->
<select>
<asp:Repeater runat="server" ID="repTypes">
<ItemTemplate>
<option value='<%# Eval("id") %>'><%# Eval("vc_TypeName") %></option>
</ItemTemplate>
</asp:Repeater>
</select>

JS方面

$(document).ready(function () {
$("#uploadify").uploadify({
swf: 'TheUploadify/uploadify.swf',
uploader: 'TheUploadify/Upload.aspx?ID=' +<%=ID %> +'&DataID=' +<%=DataID %> +'',
cancelImg: 'TheUploadify/cancel.png',
formData: { 'folder': 'UploadFile' },
progressData: 'speed',
fileSizeLimit: '10000KB',
queueID: 'fileQueue',
auto: false,
multi: true,
height: 27,
buttonImage: 'TheUploadify/selectFile.jpg',
wmode: 'transparent',
onUploadComplete: function (event, queueID, fileObj, response, data) {
// alert(fileObj.name);文件上传成功
},
onError: function (event, queueID, fileObj) {
alert("文件:" + fileObj.name + " 上传失败");
},
onUploadStart: function (file) {
//********根据file.id可以找到每一个条目
var attachType = $("#" + file.id).find("select").val();
this.addPostParam("attach_type", attachType);
this.addPostParam("file_name", encodeURI(file.name)); //在onUploadStart事件中添加文件名参数
},
onQueueComplete: function () {
//全部上传完成后刷新
window.location.href = window.location.href;
},
onDialogClose: function () {
var attachTypes = $("#attachTypes"); //克隆文件类型
var items = $(".fileName");
if (items.length > 0) {
items.each(function () {
var nowitem = $(this);
if (nowitem.parent().find("select").length < 1) {
var cloneTypes = attachTypes.clone();
cloneTypes.removeAttr("id");
cloneTypes.insertAfter(nowitem);
}
});
} }
});
//开始上传
$("#btnUpload").click(function () {
$("#uploadify").uploadify('upload', '*');
}); //取消上传
$("#btnCancel").click(function () {
$("#uploadify").uploadify('cancel', '*');
});
});

其主要原理是在选择文本对话框关闭时,触发相应的onDialogClose事件,将类型加入到条目的指定位置

Uploadif稍做扩展使用的更多相关文章

  1. MyBatis知多少(4)MyBatis的优势

    MyBatis是一个混合型解决方案.它汲取了所有这些解决方案中最有价值的思想并将它们融会贯通.下表总结了MyBatis从我们之前讨论的那些方案中所汲取的思想. 方 案 相同的优点 解决的问题 存储过程 ...

  2. ASP.NET MVC学前篇之扩展方法、链式编程

    ASP.NET MVC学前篇之扩展方法.链式编程 前言 目的没有别的,就是介绍几点在ASP.NETMVC 用到C#语言特性,还有一些其他琐碎的知识点,强行的划分一个范围的话,只能说都跟MVC有关,有的 ...

  3. Cocos2d-x——Cocos2d-x 屏幕适配新解 – 兼容与扩展【转载】

    Cocos2d-x 屏幕适配新解 – 兼容与扩展 本文出自[无间落叶](转载请保留出处):http://blog.leafsoar.com/archives/2013/05-13-08.html 在读 ...

  4. 扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注

    原文 http://blog.csdn.net/esricd/article/details/7587136 在ArcGIS API for Silverlight/WPF中原版的TextSymbol ...

  5. 如何开始一个模块化可扩展的Web App(转)

    原文链接:http://avnpc.com/pages/start-a-modular-extensible-webapp 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性 ...

  6. 如何做实时监控?—— 参考 Spring Boot 实现

    随着 微服务 的流行,相比较以前一个大型应用程序搞定所有需求,我们现在更倾向于把大型应用程序切分成多个微服务,服务之间通过 RPC 调用.微服务架构的好处非常多,例如稳定的服务变化较少,不会被非稳定服 ...

  7. 如何做实时监控?—— 参考 Spring Boot 实现(转)

    转自:http://blog.csdn.net/xiaoyu411502/article/details/48129057 随着 微服务 的流行,相比较以前一个大型应用程序搞定所有需求,我们现在更倾向 ...

  8. Dubbo源码解析之SPI(一):扩展类的加载过程

    Dubbo是一款开源的.高性能且轻量级的Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用.智能容错和负载均衡,以及服务自动注册和发现. Dubbo最早是阿里公司内部的RPC框架,于 ...

  9. ES6中对象的扩展

    ES6不仅为字符串.数值和数组带来了扩展,也为对象带来了很多新特性.这一节,我们来一起学习一下对象的扩展. 对象的传统表示法 我们回顾一下,对象的传统表示法: let person = { " ...

随机推荐

  1. c# webBrowser 获取Ajax信息 .

    c#中 webbrowser控件对Ajax的执行,没有任何的响应,难于判断Ajax是否已经执行完毕,我GG了一下午,找到一个方法,介绍一下: 假如在页面中有个<div id=result> ...

  2. 一个好用的VC DBGRID[图]

    本文示例源代码下载 CGridCtrl_demo19_01.zip为演示CGridCtrl的使用 CGridCtrl_demo19_02.zip演示与CMYODBC的配合使用 一.引言 在用vc开发关 ...

  3. 04737_C++程序设计_第5章_特殊函数和成员

    例5.1 分析下面程序中析构函数与构造函数的调用顺序. #include<iostream> using namespace std; class object { private: in ...

  4. 开源 免费 java CMS - FreeCMS1.9 简历管理

    项目地址:http://code.google.com/p/freecms/ 简历管理 管理当前管理网站的简历数据. 1. 回复简历 选择须要回复的简历.然后点击"回复". 注意: ...

  5. 初学JSoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HTML 文本内容.它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出 ...

  6. C++链接库

    静态链接库在程序编译链接过程中就导入lib文件并且包含在生成的exe文件里,而动态链接库DLL是在程序运行中由程序加载和卸载的,也就是说它是动态的,当然动态链接库DLL也可以静态加载当做静态来用: 静 ...

  7. VC++ SetLayeredWindowAttributes 部分窗口透明鼠标穿透

    在初始化中使用下面两行代码 ModifyStyleEx(0, WS_EX_LAYERED); ::SetLayeredWindowAttributes(m_hWnd, RGB(1, 255, 0), ...

  8. MapReuce 编程总结-多MapReduce执行

    学习hadoop,必不可少的就是写MapReduce程序,当然,对于简单的分析程序,我们只需一个MapReduce就能搞定,这里就不提单MapReuce的情况了,网上例子很多,大家可以百度Google ...

  9. Android 内部存储安装apk文件实现

    目前国内市场的山寨机横行,安卓手机升级也是一天一个样,对于原来老手机可能没有SDCARD,导致我们的APP不能下载资源,无法更新APP,针对这种情况有以下解决方案.通过以下函数判断是否有SD卡再判断下 ...

  10. StringBuffer&Runtime demo

    public class StringBufferDemo02 {     public static void main(String[] args) {         StringBuffer ...