4

zipファイルをデータベースに保存する古いアプリケーションを継承しました。このファイルを取得する必要があります。Firefoxでは問題なく動作します。zipを開くことができ、その中の各ファイルは問題ありません。IE7で実行すると、次のエラーが発生します。

Internet Explorerは、ローカルホストからProductContentFormImage.aspxをダウンロードできません。

Internet Explorerは、このインターネットサイトを開くことができませんでした。リクエストされたサイトは利用できないか、見つかりません。後でもう一度やり直してください。

私は以下のコードを使用しています。

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();
4

2 に答える 2

6

これはIEに固有の奇妙な小さなバグです。

基本的に、有効期限を0に設定すると、問題が発生します。

IEは、基本的に次のプロセスを実行します。

  1. IEは、ファイルが「ダウンロード」されるものであると判断します。これにより、IEは[ファイルのダウンロード]ポップアップを開きます。

  2. ユーザーが[開く]または[保存]をクリックすると、IEはファイルのダウンロードを試みますが、すぐに期限切れになるように設定されているため、IEが起動します。

有効期限を1分などのゼロ以外の小さな数値に設定すると、問題が解消されるはずです。

于 2009-04-21T21:46:46.463 に答える
1

HttpCacheabilityをprivateに設定すると、問題が修正されることがわかりました。

context.Response.Cache.SetCacheability(HttpCacheability.Private);
于 2010-08-16T05:27:28.663 に答える