当前位置 : 主页 > 编程语言 > c语言 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-25
我继承了一个旧的应用程序,它将zip文件存储在数据库中,需要检索此文件.在Firefox中工作正常,我可以打开zip并且里面的每个文件都很好.当我在IE7中运行它时,我收到以下错误. Internet Exp
我继承了一个旧的应用程序,它将zip文件存储在数据库中,需要检索此文件.在Firefox中工作正常,我可以打开zip并且里面的每个文件都很好.当我在IE7中运行它时,我收到以下错误.

Internet Explorer cannot download ProductContentFormImage.aspx from localhost.

Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.

我正在使用下面的代码.

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();
这是一个特定于IE的奇怪小错误.

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

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

> IE确定该文件是“下载”的,这会导致IE打开“文件下载”弹出窗口.
>一旦用户点击“打开”或“保存”,IE就会尝试下载该文件,但由于它已设置为立即过期,因此IE会启动.

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

网友评论