PDFファイルをWebブラウザー(IE8)で出力します(IE8)HttpContext.Response.writefile(fileName)
とうまくいきます。ファイルを保存しようとすると、ファイル名が表示されますデフォルトではashxハンドラーです。実際の名前を渡したいのですが。
次のようにヘッダー情報を追加しようとしました:
context.Response.AddHeader("content-disposition", "attachment; filename=" + fileInfo.Name);
そして、それは機能しますが、ユーザーが開くか保存するかを選択する必要がないようにしたいのですが、ファイルを通常どおりに開いて、ユーザーがそれを保存することを選択した場合、ダイアログでデフォルトのファイル名が表示されます。
私も試しました:
context.Response.AddHeader("content-disposition", "inline; filename=" + fileInfo.Name);
あるいは Scott Hanselmanが彼のブログで提案した のように。
context.Response.AddHeader("content-disposition", "filename=" + fileInfo.Name);
それらのどれも私のために働きません。誰かが何かアイデアを持っていますか?
http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdf にあるテストケースを参照してください。これは、IEに欠けている機能のようです。
私もこの問題に遭遇しました。私を助けたのは、contenttypeをapplication/pdf
に設定することでした(古いapplication/x-pdf
ではなく)。
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline; filename=\"Report.pdf\"");
INLINEの場合、Internet ExplorerはURLの最後のパラメーターを使用してファイル名を作成しているようです。たとえば、URLが http://doc.com/131231231 IEの場合、131231231.pdfとしてファイルを保存するように求められます。たとえば、ファイル名が必要な場合foo_131231231.pdf IEこのURLを使用してハッキングできます: http://doc.com/foo_131231231 アプリを少し変更して、そのようなことを期待してください。醜いパラメータですが、最後にはアプリは期待どおりに動作します。