2013-02-11 16 views
13

Webブラウザ(IE8)HttpContext.Response.writefile(fileName)でPDFファイルを出力しています。ファイルを保存しようとすると、ashxハンドラの名前がデフォルトとして与えられます。実名を実際に渡したいと思います。PDF Handler:コンテンツ処理ファイル名

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

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

そして、それは動作しますが、私は、私は、ファイルがユーザーを正常に開いている場合にしたい、ユーザーはオープンと保存の間で選択する必要がありますする必要はありませんそれを保存することを選択するとダイアログは彼/彼女にデフォルトのファイル名を与えます。

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

をそれとも、同様Scott Hanselman suggested in his blog

私も試してみました。

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

いずれも私には当てはまりません。誰にもアイデアはありますか?

答えて

2

INLINEの場合、Internet ExplorerはURLの最後のパラメータを使用してファイル名を作成しているようです。変更するhttp://doc.com/foo_131231231 あなたが苦しむことがあります。たとえば はあなたのURLは、IEはあなたがこのURLを使ってIEをハックすることができます例foo_131231231.pdf のファイル名が必要な場合は131231231.pdf としてファイルを保存するよう求められますhttp://doc.com/131231231 ある場合あなたのアプリは、そのような醜いパラメータを期待するビットが、最後にあなたのアプリ は期待どおりに動作します。

2

またこの問題が発生しました。 何を手伝ってくれたことも(時代遅れである代わりにapplication/x-pdfの、)application/pdfにContentTypeを設定することでした

response.setContentType("application/pdf"); 
response.setHeader("Content-disposition", "inline; filename=\"Report.pdf\""); 
関連する問題