2009-04-21 17 views
3

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

Internet Explorerは、localhostから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(); 

答えて

6

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

にあなたの有効期限を設定した場合

は基本的に、問題はそれ自身を示すIEは、基本的には、次のプロセスを経る:

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

  2. ユーザーが「開く」または「保存する」をクリックすると、IEはファイルのダウンロードを試みますが、すぐに期限切れになるため、IEはトリップします。

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

1

私が発見したそのプライベート修正に問題

context.Response.Cache.SetCacheability(HttpCacheability.Private); 
をHttpCacheabilityを設定
関連する問題