- 浏览: 28142 次
最新评论
通过Flash实现ASP.NET多文件上传
- 博客分类:
- 技术杂绘
关于多文件上传,以前我一直使用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提交更新页面状态,详细请查看示例代码。最终效果图下图:
控件还有许多需要完善的地方,比如请求处理程序那一块,上传文件的时候对文件的选择进行判断,不允许重复选择,判断选择队列中的文件在服务器上是否已经存在等等。有兴趣的朋友可以下去改善这些功能!源代码下载
发表评论
-
字符串相关方法
2012-07-06 09:51 497字符串相关方法使 ... -
JavaScript用正则表达式验证表单
2012-07-06 09:44 642验证表单的不同内容用的是不同的正则表达式。 常用的正则 ... -
Actionscript正则表达式(二)
2012-07-06 09:36 1574Actionscript正则表达 ... -
Winform Change skin(DevExpress commerical commponents)
2012-07-06 09:29 1190Create a basic Form public pa ... -
【资料整理】Javascript中getElementsByName()和getElementById()的区别和用法
2012-07-05 20:44 573getElementsByName()定义和用法 ge ... -
重写Flex组件
2012-07-03 13:42 517一、为什么要重写 ... -
重写Flex组件
2012-07-03 12:15 505一、为什么要重写 ... -
Flex 动态datagrid的应用
2012-07-02 10:08 625Style Definitions */ p.MsoNor ... -
Flex 数据易犯错误: 常见误用和错误
2012-07-02 10:07 523在某些情形下,绑定操作似乎不能正常工作,此时你可能非常懊恼 ... -
Hello,Flex
2012-07-02 09:41 400... -
Qt学习之路(53): 拖放技术之二
2012-07-01 09:25 746很长时间没有来写博客了,前段时间一直在帮同学弄一个 spr ... -
设置手机项目首选参数
2012-07-01 09:24 738Flash Builder 使用设 ... -
关于ActionScript 3.0 中方法重写和继承的发现
2012-07-01 09:24 607子类: package { import mx.contr ... -
flex 第三方库 大全
2012-06-30 11:11 552flex 第三方库 大全 2011年11月17日 下面总 ... -
Adobe Flex
2012-06-30 11:11 491Adobe Flex 2010年08月15日 ... -
Flex Builder2的基本知识[转]
2012-06-30 11:11 494Flex Builder2的基本知识[ ... -
Flex RSL
2012-06-30 11:11 544Flex RSL 2010年11月02日 ... -
memcached完全剖析
2012-01-20 08:31 589memcached完全剖析 2011年0 ... -
把Linux中的VFS对象串联起来
2012-01-20 08:31 909把Linux中的VFS对象串联起来 2010年06月21日 ... -
memcached完全剖析
2012-01-20 08:31 548memcached完全剖析 2011年0 ...
相关推荐
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]