首页新闻找找看学习计划

IIS在启用gzip压缩后文件下载的问题

0
悬赏园豆:20 [已解决问题] 解决于 2009-02-13 11:27

IIS在启用gzip压缩后,在服务器端生成的Excel2007文件,下载后文件打不开了。

Excel2007文件实际上是一个压缩包,下载后右键查看文件属性,摘要选项卡不正常,怀疑文件格式在下载的过程中被改变了,不知道是在哪个环节上出了问题。

以下是下载的代码:

                response.Clear();
                response.ClearHeaders();
                response.ClearContent();
                response.Buffer = false;
                response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                response.ContentEncoding = Encoding.UTF8;
                response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileInfo.Name, Encoding.UTF8));
                response.AppendHeader("Content-Length", fileInfo.Length.ToString());
                response.WriteFile(fileInfo.FullName);
                response.Flush();
                response.End();

问题补充: 有试过在HTTP 头中指明gzip,问题还是存在 现在已经不用IIS压缩了,改使用HttpModule方式,配合自定义过滤机制,实现压缩
ppchen(陈荣林)的主页 ppchen(陈荣林) | 菜鸟二级 | 园豆:260
提问于:2009-02-02 15:59
< >
分享
最佳答案
0

是不是要在HTTP 头中指明 gzip ?

eaglet | 专家六级 |园豆:17119 | 2009-02-03 07:02
其他回答(2)
0

去掉这一行response.ContentEncoding = Encoding.UTF8;应该就不会有问题了.

黄尚 | 园豆:272 (菜鸟二级) | 2009-02-04 11:55
0

解决了,在iis中添加如下文章的.xls类型即可,不用那么麻烦

http://hi.baidu.com/03wjhejing/item/7dab829ff33fb88d58146195

事理 | 园豆:42 (初学一级) | 2013-09-09 23:39

加上System.Web.HttpContext.Current.Response.AppendHeader("Content-Encoding", "no");//解决服务器启用gizp后文件下载出错问题

即可

支持(0) 反对(0) 事理 | 园豆:42 (初学一级) | 2013-10-08 16:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册