微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net中使用SWFUpload上传图片

SWFUpload是一个客户端文件上传工具,官网http://code.google.com/p/swfupload/ 其中常用的功能之一便是上传图片(可批量)在线Demo http://demo.swfupload.org/v220/applicationdemo/index.php (.net版本)

具体的使用请参考官方文档

一从大体上来说,swfUpload主要有这样几个重要的文件

1.swfupload_f9.swf 这个是核心的上传用的flash文件.

2.upload.aspx 这个是把文件上传到服务器上后,所要处理的页面.

3.default.css 用于显示进度条的CSS文件.可以根据自己喜好进行修改!

4.swfupload.js 定义了swfupload_f9组建的属性和一些方法.(最好不好动).

5.handler.js 定义了,用于处理swfupload_f9组建所触发的事件.可以根据自己需要,进行修改.

解压附件,打开其中的Default.aspx 是前台上传图片页面页面的JS代码很容易看懂

打开upload.aspx,是处理上传图片的,在Demo中是生成缩略图,我在代码中又设置了文件保存路径,以及对上传图片进行了重命名。有不懂的童鞋可以用VS打开附件进行查看。

下面说些常见问题

IE9下面“选择照片”按钮不显示(SWFUpload ie9 bug)

解决办法,修改swfupload.js文件getFlashHTML

添加classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″

但我发现官方的DEMO是在IE9下显示正常的,很奇怪。而且发现添加了这个后Firefox和Chrome下又显示异常了。。。去掉后除IE9下显示异常外,其他浏览器正常,我想这应该还是归因于ie9的bug吧。

Firefox,Chrome 报错302(Firefox,Chrome SWFUpload 302 )

附件中即为官方版本

swfupload是flash采用socket和服务端进行通信了,所以服务端的session值或cookie值在这时候是捕获不到了。在认的情况下ie是不存在获取不到seesion或cookie值的,然而对于firefox或chrome在dotnet环境下都是不能获取session和cookie值的。

通过 Global.asax 文件你可以覆盖丢失的Session ID cookie,代码如下(引用官方解决方案):

Global.asax修改如下:

void Application_BeginRequest(object sender,EventArgs e)

void UpdateCookie(string cookie_name,string cookie_value)

另附

设置保存图片路径和,返回图片保存路径

附件下载地址http://download.csdn.net/detail/nonfuxinyang/4343483

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐