- 浏览: 27179 次
- 性别:
- 来自: 广州
最新评论
关于多文件上传,以前我一直使用JQuery去动态创建文件选择组件,然后POST到服务器去。最近一段时间一直在Flash身边打滚,Flash对于多文件上传有很好的支持,在CodePrject上有一个Flash的多文件上传组件的开源项目,将其封装为ASP.NET控件,当我们在开发ASP.NET程序的时候可以像使用普通控件一样,从工具箱里拉到界面上就可以使用。
Flash采用Flex开发的,实现了选择文件和统计文件大小的功能,选择了多个文件时会动态的创建Flex组件显示到界面上,并且可以移除所选择的文件。以下是Flex项目结构图:
Flex是完全基于事件驱动的开发模型,通过自定义一个Flex的Application来实现文件的多选和文件数量以及上传文件大小的统计等功能。如上图的FileUpload就是自定义的一个组件,扩展自VBox实现了动态创建组件和处理事件。详细参考下面代码: 在Flex的App程序里就使用上面自定义的Application组件来进行设计,详细如下代码块:
.button {fontWeight:normal;}
完成了多文件选择功能的Flash开发,现在就是想法将其生成的.swf封装到dll成为ASP.NET的服务器端控件,实现这一步很非常简单,将生成的.swf作为资源嵌入到ASP.NET的dll文件里就OK。然后自己定义一个类继承于Control,进行相应方法的重写就达到了目的,这里我们就需要重写Render()方法,在方法里通过调用资源的方法从.dll里读取出嵌入里面的.swf文件资源,然后向客户端输出嵌入flash文件(.swf)的编码就完成了。
控件中定义了多个属性,方便可视化设置控件的属性值,其中最为主要的属性为:UploadPage,该属性的作用就是指定通过那一个处理程序来处理上传文件的请求,实现请求中上传文件的保存功能。在示例程序里,我自定义了一个HttpHandler来处理上传文件的请求,实现IHttpHandler接口。程序代码如下: namespace FlashUpLoadWeb
{
///
/// 上传文件处理程序
///
public class UploadHandler : IHttpHandler, IRequiresSessionState
{
#region IHttpHandler 成员
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
//文件上传存储路径
string uploadPath = context.Server.MapPath(context.Request.Application Path + "/Upload");
for (int i = 0; i 0)
{
uploadFile.SaveAs(Path.Combine(uploadPath, uploadFile.FileName));
}
}
HttpContext.Current.Response.Write(" ");
}
#endregion
}
}
定义好了请求处理程序,这时只需要通过配置文件简单的配置就可以设置控件的处理程序页地址了,如下:
另外一个属性就是OnUploadComplete,通过它指定当文件上传完毕后调用客户端的那一个JavaScript提交更新页面状态,详细请查看示例代码。最终效果图下图:
控件还有许多需要完善的地方,比如请求处理程序那一块,上传文件的时候对文件的选择进行判断,不允许重复选择,判断选择队列中的文件在服务器上是否已经存在等等。有兴趣的朋友可以下去改善这些功能!源代码下载
发表评论
-
[转] C#字符串浅析
2012-07-06 09:51 774先说说字符串操作的性能问题。C#中的字符串操作,用得也比较 ... -
【正则】构造复杂SQL语句的正则表达式2(粗粒度分析)
2012-07-06 09:44 1164(二)语句构造粗粒度分析 以下分析oracle SQL语法 ... -
正则表达式的十二罗汉
2012-07-06 09:37 646元字符: Metacharacters . 匹 ... -
50 个漂亮的后台管理界面模板
2012-07-06 09:29 1493后台管理虽然一般由内部人员使用的平台,更侧重于功能而非美观 ... -
Android应用程序组件概述
2012-07-03 13:42 371以下是Android应用程 ... -
Android应用程序组件概述
2012-07-03 12:16 530以下是Android应用程 ... -
Passing request data with flashVars properties
2012-07-02 10:12 811If you are using the generate ... -
Embed
2012-07-02 10:12 562Flex 软件中经常需要使用一些外部的资源,如图片、声音、 ... -
元数据标签
2012-07-02 10:12 653Flex 中的元数据标 ... -
Flex
2012-07-02 09:42 482... -
Flex 数据易犯错误: 常见误用和错误
2012-07-01 09:32 921在某些情形下,绑定操作似乎不能正常工作,此时你可能非常懊恼 ... -
关于flex的资料
2012-07-01 09:32 7014====Adobe官方==== Adobe : ... -
Flex + BlazeDS 学习笔记 (一) --- BlazeDS的功能原理及配置实例
2012-07-01 09:32 444BlazeDS Test Drive里面示例了主要的功能: ... -
Flex + LCDS + Java 入门教程
2012-07-01 09:32 605一.引 很多 ... -
myeclipse6.5+flex 3 + tomcat6.0 + ds-console.war环境搭建
2012-07-01 09:32 672安装环境:myeclipse6 ... -
u-boot在S3C2440上的移植问题及解决方法集锦(四)
2012-06-30 17:50 1126一、移植环境 CPU:S3C2 ... -
使用Apache Axis部署 Web服务时的常见问题及其解决方法
2012-06-30 17:49 9851 引言 随着Web服务 ... -
MySQL常见远程连接错误解决方法
2012-06-30 17:49 816MySQL常见远程连接错误解决方法 常见mysql远 ... -
SQL 2005 sa用户无法登陆解决方法
2012-06-30 17:49 902昨天我的SQL(Microsoft SQL Server ... -
XEN故障与解决方法汇总
2012-06-30 17:49 16571、稳定的物理硬件环境,由于虚拟机的使用将会使多个系统运行 ...
相关推荐
asp.net上传 多文件上传 批量上传 上传代码 上载asp.net上传 多文件上传 批量上传 上传代码 上载asp.net上传 多文件上传 批量上传 上传代码 上载asp.net上传 多文件上传 批量上传 上传代码 上载asp.net上传 多文件...
Flash+Asp.net(PHP)文件批量上传DEMO
asp.net采用jqUploadify插件实现多文件上传,兼容IE8以上浏览器,浏览器必须支持flash
美观的上传方式,用flash设计的 asp.net上传。
asp.net 文件上传demo 框架3.5 flash与.net相结合实现文件上传功能 支持 大文件上传 文件批量上传
asp.net多文件上传一直是一个难题,现在找到一个多文件上传的Flash插件,分享给大家。文件上传带进度条,无刷新上传。
Uploadify 是一个非常好的jQuery文件上传插件,可以实现无刷新多文件上传,带进度显示,基于Flash与Ajax技术。我在Firefox 4.0.1 和 IE 9.0.8112 浏览器中使用,兼容性良好。使用许可是 MIT,免费开源且可自由地用于...
asp.net+flash批量上传源代码asp.net+flash批量上传源代码asp.net+flash批量上传源代码asp.net+flash批量上传源代码asp.net+flash批量上传源代码asp.net+flash批量上传源代码asp.net+flash批量上传源代码asp.net+...
flash 多文件上传控件。asp.net
asp.net多文件上传flash版,本人亲测,操作简单方便!
asp.net单文件带进度条上传,不属于任务控件,也不是flash类型的上传,完全是asp.net、js、css实现上传。源码为开发测试版,需要使用的亲需要注意修改配置文件。详见配套博客:...
Jquery 多文件上传,jquery+flash 多文件上传,界面美观, 很炫的上传组件,支持中文! 本实例经过严格测试,保证能正常使用!网上其他好多实例都不能正常运行。 uploadify是一款容量小、功能强的Js批量上传工具,...
Uploadify 是一个非常好的jQuery文件上传插件,可以实现无刷新多文件上传,带进度显示,基于Flash与Ajax技术。我在Firefox 4.0.1 和 IE 9.0.8112 浏览器中使用,兼容性良好。使用许可是 MIT,免费开源且可自由地用于...
ajax+flash无刷新同时选多文件上传(fancyupload) asp.net(C#)示例
先上传Excel、Word、PDF文件,将Excel、Word转换成PDF文件再通过工具将PDF文件转换成flash(.swf)文件,通过插件预览flash文件
asp.net 3.0 + Flash上传文件 带进度条
下载后直接使用 用flash上传 无刷新技术 自己看保证可以使用
采用Flash+ASP.NET技术实现的多文件上传源程序代码,采用C#开发完成,界面漂亮,具有进度显示控制。
[多文件上传][显进度条][JQ+FLASH+ASP.NET]