写出一个zip文件在IE7中不起作用

jhu*_*ter 3 c# asp.net zip internet-explorer

我继承了一个旧的应用程序,它将zip文件存储在数据库中,需要检索此文件.在Firefox中工作正常,我可以打开zip并且里面的每个文件都很好.当我在IE7中运行它时,我收到以下错误.

Internet Explorer无法从localhost下载ProductContentFormImage.aspx.

Internet Explorer无法打开此Internet站点.请求的网站不可用或无法找到.请稍后再试.

我正在使用下面的代码.

byte[] content = (byte[])Session["contentBinary"];

Response.ClearContent();
Response.ClearHeaders();
Response.Clear();

Response.Buffer = true;
Response.Expires = 0;
Response.ContentType = "application/zip";
Response.AddHeader("Content-Length", content.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=content.zip");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(content);
Response.End();
Run Code Online (Sandbox Code Playgroud)

Rya*_*ner 6

这是一个特定于IE的奇怪小错误.

基本上,当您将到期时间设置为0时,问题就出现了.

IE基本上经历了以下过程:

  1. IE确定该文件是"下载"的,这会导致IE打开"文件下载"弹出窗口.

  2. 一旦用户点击"打开"或"保存",IE就会尝试下载该文件,但由于它设置为立即过期,因此IE会跳闸.

将您的到期时间设置为一个非零的小数字,例如1分钟,您应该会看到问题消失.