0

サーバー上の場所からアップロードされたファイルをダウンロードしようとしています。ファイルをダウンロードするために使用しているコードは次のとおりです

Response.ContentType = "image/jpg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
Response.TransmitFile(Server.MapPath(filePath));
Response.End();

ここにはさまざまな拡張子のファイルがあります。つまり、ファイルはjpg/pdf/doc/txtContentTypeにすることができ、現在image/jpg.

ファイルをダウンロードしようとすると、適切に保存され、保存されている物理的な場所から開くことができますが、開くことができず、ファイルがダウンロードされません。写真に示すようなエラーが表示されます。

ここに画像の説明を入力 ここに画像の説明を入力

この問題は、タイプのファイルをjpg開こうとしても発生するため、関係があるとは思いませんContentType

親切に助けてください。

4

2 に答える 2

0

として指定Content-Typeoctet-streamて動作しました!

于 2012-11-24T06:33:44.567 に答える
0

ほとんどの場合、この問題は、キャッシュが無効になっている Internet Explorer で発生します (ファイルは一時フォルダーにダウンロードされ、[開く] をクリックする前に削除されます)。IEInternalsを参照してください。

これを確認する方法: Fiddlerを起動し、ファイル ダウンロード応答でキャッシュ ヘッダーを探します。

応答にCache-Control: no-cacheヘッダーが含まれている場合は、コードを変更してオーバーライドするか、無効にするコードをCache-Control: private変更して、ファイルを生成するハンドラー/ページ/アクションを除外する必要があります (asp.netCache-Controlでヘッダーのオーバーライドに問題が発生することがあるため、通常は 2 番目の方法を使用します)。

于 2012-11-23T10:38:25.213 に答える