c# + Flash上传控件
来源:互联网 发布:guitar rig5 mac 破解 编辑:程序博客网 时间:2024/05/01 01:58
先看看控件的外观
一、不好解决的问题
整体来说,控件本身没什么大问题,只是有点小小的问题先交代一下。
1. Firefox的某些老版本对FLASH不兼容,这个不是控件自身能解决的问题。
2. 新版Firefox虽然兼容了FLASH,但是对SESSION与COOKIES就找不到了,原因是Friefox使用与FLASH使用了不同的程序池造成。
3. 这个控件不支持异步回调信息,不过,异步回调信息也确实没什么用,本来就不应该是控件去实现。要是想实现,也应该是再次封装才对。
4. onComplete的异常信息不可控,我想让根据异常类型显示不同的错误提示,目前有待研究。
5. 大文件上传的性能如何,没有做全方面的对比,我小测了一下,还是很不错的。
6. 服务器接收文件后,可能会有更多的动作,如视频文件上传后需要自动压缩,编辑,切割等。如何对服务器的工作状态信息交互,有待研究。
二、控件扩展性
源码都有,只要稍微会点FLASH,扩展功能应该没问题。
1. FLASH本身可以与JS交互,想做更炫的效果不是问题。
2. 样式可以随意调整。
3. 因为是异步请求,存储文件的方式可控。
4. 不会与目前项目中的其他上传控件冲突。这点很重要。
5. 虽然多文件上传的模式很多,不过,支持多文件上传绝对是没问题的。
三、 解读代码
问题一大堆,扩展性也达到基本要求。决定使用的话,就要研究一下代码了。
1. 如何限制上传文件大小?
目前我使用的方法是通过Web.config管理。限制1G
<system.web><httpRuntime maxRequestLength="1048576" useFullyQualifiedRedirectUrl="false"/></system.web>
如果文件超过1G
2. 如何显示上传文件类型?
c#的HttpContext 类 context.Request.Files 可以等到上传文件的集合信息,判断文件类型的方式就很多了。不符合要求的直接抛出异常就好。当然,也可以通过客户端验证,效果更好,就是感觉不大安全。最好就是客户端与服务器端都做验证。保证用户体验,也保证服务器安全。
3. 上传成功后如何回传信息?
我们知道这个控件有Firefox兼容问题,也不支持信息回调(我想是应该支持的才对,只是没研究明白),可是,有一个解决办法,控件有一个参数completeFunction=UploadComplete(),UploadComplete是你的JS方法。作用就是当文件上传完成后,做一些其它的事情。有了它,很多问题就解决了。
我目前使用的方案是利用Cache,将用户信息与文件信息暂时存在缓存中解决Firefox对Session的问题。上传成功后有AJAX异步读取信息进行回调解决控件不支持异步回调信息的问题,同时也解决了服务器对文件处理的多个动作状态显示的问题。
4. 上传状态提示信息脱离FLASH,如何交给JS去处理?
交给JS去处理对用户体验效果会更好一些,需要修改FLASH代码了,把信息显示部分用getURL('javascript:' + completeFunction);这样的方法整理一下就可以。
目前我开发中遇到的问题都在上面,大家还有什么问题和意见请留言,我们一起探讨研究。
本案例的源码下载链接: http://download.csdn.net/source/2058772
- c# + Flash上传控件
- c# mvc flash上传
- FLASH 上传控件传输,服务端保存文件
- .net C# FileUpload控件上传
- js上传插件uploadify自动检测不到flash控件的问题
- C#上传控件 支持进度 速度
- Flash C# 大文件WEB上传完美方案(源码)
- C#多文件上传,客户端input file控件
- c#上传大文件控件(包含进度条)
- C# ASP.NET上传控件fileupload的使用
- C# 如何后台判断 file控件上传的文件类型
- SWFUpload上传控件文件名乱码(因Flash版本bug引起)的解决方案
- 关于非IE浏览器下Flash上传控件HTTP ERROR 302
- 百度 flash html5自切换 多文件异步上传控件webuploader基本用法
- WebDriver模拟上传附件时,使用Sikuli 来操作Flash 控件
- Flash 图片上传
- flash上传网站大全
- flash + php 文件上传
- Java 垃圾回收 调优 HotSpot JV
- 诺基亚标准:Does your Scrum team pass the Scrum test used at Nokia
- 一些工具函数--Xml 序列化
- flex 小技巧
- 敏捷生态系统:2009敏捷中国大会上的演讲稿
- c# + Flash上传控件
- 两种实现PPC地址重映射的方案,uboot powerpc
- Sortable Table 可排序表格JS收集
- Joomla!扩展制作实例教程-模板展示组件-增加后台上传图片功能 【转】
- OnNcCalcSize改变标题栏等的高度
- ListBox绑定数据
- 自己手动创建dataset的方法(不用从数据库倒入)
- oracle和DB2递归的例子
- 使用一次性密码解决方案更安全地验证身份