18

PDFファイルをWebブラウザー(IE8)で出力していますが、HttpContext.Response.writefile(fileName)うまく機能しています。ファイルを保存しようとすると、デフォルトでashxハンドラーの名前が表示されます。実際に本名を渡したいのですが。

次のようにヘッダー情報を追加しようとしました。

context.Response.AddHeader("content-disposition", "attachment; filename=" + fileInfo.Name);

そしてそれは動作しますが、ユーザーが開くか保存するかを選択する必要はありません。ファイルを通常どおりに開き、ユーザーが保存することを選択すると、ダイアログにデフォルトのファイル名が表示されます。

私も試しました:

context.Response.AddHeader("content-disposition", "inline; filename=" + fileInfo.Name);

または、スコット・ハンゼルマンがブログで提案したように。

context.Response.AddHeader("content-disposition", "filename=" + fileInfo.Name);

それらのどれも私のために働きません。誰かアイデアはありますか?

4

3 に答える 3

15

http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdfでテスト ケースを参照してください。これは単に IE に欠けている機能のようです。

于 2013-02-12T08:18:42.353 に答える
8

私もこの問題に遭遇しました。私を助けたのは、コンテンツタイプを(時代遅れapplication/pdfの代わりに)に設定することでしたapplication/x-pdf

response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline; filename=\"Report.pdf\"");
于 2016-03-30T16:15:15.410 に答える