- - PR -
PDFブラウザ表示時のContent-Typeについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-17 01:54
response.setContentType("application/pdf");
response.getOutputStream().write(pdfImage); response.getOutputStream().flushBuffer(); としたとき、 クライアントでパケットキャプチャツールでヘッダを見ると Content-Type:application/pdf; charset=Shift_JIS となっています。 charset=XXX が余計にくっついているため、ブラウザインライン 表示に失敗しています(AcrobatReader7/AdobeReader8)。 というか失敗している可能性が高い、というところです。確証取れ ていないので(但し、charset=XXX のためにブラウザ表示出来ない 話題を Adobe の掲示板や @IT 過去ログで確認済みです)。 ところで、Java 側のコーディングでは、charset=XXX を明示的に付けて コンテントタイプを発行している箇所は見当たらないのですが、 どこかで誰かがくっ付けているとしたら、一体どこらへんでくっつける ことが出来るのでしょうか? プロキシーサーバー? アプリケーションサーバーの設定? 仮にJava側でやっているとしたら、HttpServletResponse の getOutputStream をオーバーロードして独自のOUTを返して、Content-Type をキャッチしたら application/pdf に何かを付け足すなんて芸当も出来るかもしれませんが、 かなり詳細にフレームワークの隅々まで見たのですが、HttpServletResponse を継承した独自クラスなんぞ見当たりませんでした。 環境: WAS5.1 SVF AIX Java1.4 比較検証には、PDFインライン表示する別システムのヘッダを取得して 見比べました。この「出来る」システムも同一サーバー上で動いてい ます。フレームワークは異なりますが。 |
|
投稿日時: 2009-03-21 01:09
解決でし。
サーバーのマニュアル読めば一発なんだろうけど・・・ 借り物のサーバーじゃどーしょーも無いです。 autoResponseEncoding="false" にすると、 Content-Type: application/pdf の後ろに charset=XXX が勝手に付かなくなりました。 この設定の記述場所は、 WEB-INF/ibm-web-ext.xmi 以上 |
1