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 ?
去掉这一行response.ContentEncoding = Encoding.UTF8;应该就不会有问题了.
解决了,在iis中添加如下文章的.xls类型即可,不用那么麻烦
http://hi.baidu.com/03wjhejing/item/7dab829ff33fb88d58146195
加上System.Web.HttpContext.Current.Response.AppendHeader("Content-Encoding", "no");//解决服务器启用gizp后文件下载出错问题
即可