博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Asp.net直接保存文件到客户端

Posted on 2006-11-27 11:26  余墨  阅读(277)  评论(0)    收藏  举报
在我们的系统的编写过程中,应该有很多的时候需要客户下载文件.我第一次的做法(应该也是大部分人的做法吧?)是:
1            HttpResponse response = HttpContext.Current.Response;
2            string js = "<script language=javascript>window.open('{0}');</script>";
3            js = string.Format(js, url);
4            response.Write(js);
5

    但是有个问题了,就是会被广告拦截软件直接拦截掉,另我非常的头痛,于是寻找更好的解决方法.看了用Response.BinaryWrite写文件流一文之后觉得确实可以如此,修改代码如下:

 1/**/
 5
 6protected void DownloadFile(string filename)
 7        
31

 但是有个严重的问题,就是文件格式。这样只是将流输出,且无法正确识别格式。还好,能人层出不穷,  柚子Nan 提出了能否不考虑文件的类型,直接把文件显示到浏览器(Response) 的想法正好切中我的要害所在,于是急忙研究了柚子Nan的想法,修改出最后代码:

 1        /**/
 5        protected void DownloadFile(string filename)
 6        


 

文件的ContentType类型 小全