程序很小,目的是为了解决所有web应用图片和文章上传
思路是这样的:任何一个web应用程序提交的都是一个表单,表单内有文件域。
这里这个上传文件拦截到这个form提交的所有文件域,处理上传,并将文件域改名为同名的文本域,文本域的内容就是成功上传的URL,如果失败返回为空,然后redirect到目标的信息页。样就很容易实现img.xxxxxx.com的效果,也能购方便的将论坛博客的上传分离,所要做的就是将上传的action改为该程序的上传处理地址,默认为 /i/up.aspx
原理图
配置文件:
<uploaderconfig>
<applications><!--可以有多个-->
<uploaderapplication>
<id>bbs_uploadfile</id>
<refererdomain>bbs.cnhubei.com</refererdomain>
<refererurl>http://bbs.cnhubei.com/post_upload.asp(.*)</refererurl> <!--调用合法的URL,可以使用正则表达式-->
<successurl></successurl><!--成功后返回页面-->
<errorurl></errorurl><!--出现错误返回页面-->
<domain>img.cnhubei.com</domain><!--目标URL-->
<localfolder>D:\Host\img.cnhubei.com</localfolder>
<allowedextensions>.gif|.jpg|.jpeg|.png|.bmp|.tif|.iff|.swf|.swi|.mid|.wav|.mp3|.rmi|.cda|.avi|.mpg|.mpeg|.ra|.ram|.wov|.asf</allowedextensions>
<allowedextensionssize>350000|350000|350000|350000|350000|350000|35000|750000|35000|50000|35000|50000|50000|50000|50000|50000|50000|50000|50000|50000|50000</allowedextensionssize><!--限制文件上传大小和上传的扩展名,上下对应-->
<folderparse>^UploadFile|yyyyMM|dd|HH</folderparse><!--文件存放规则-->
</uploaderapplication>
</uploaderconfig>
bbs.cnhubei.com使用动网论坛,修改后上传文件均改为 img.cnhubei.com 分离图片后论坛的运行效率得到有效的改观
源代码下载: DotNetCommonUpload.rar
文章来源:http://www.w3cool.com/2007/12/06/aspnet.html