- - PR -
PDFが別画面に表示されてしまう
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-15 16:44
時間がかかりましたが自力解決しましたので報告します。
AcrobatReader6.0.1以降、 どうやらHTTPヘッダ内のContent-Typeは無視しているっぽいです。 拡張子を参照しているらしく、ダウンロードサーブレットのURLを downloadservlet.pdf としてみると、ブラウザ内にPDFを表示することに成功しました。 しかし、Content-Dispositionも無視しているらしく 上記のサーブレットで保存を試みると ファイル名がdownloadservlet.pdfになってしまいます。 そこでdownloadservlet.pdfを任意.pdfと呼び出し、 web.xmlにてサーブレットのマッピングを <servlet> <servlet-name>DownLoadServlet</servlet-name> <servlet-class>sample.DownLoadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DownLoadServlet</servlet-name> <url-pattern>*.pdf</url-pattern> </servlet-mapping> としてやることで 保存ファイル名を任意.pdfにすることが出来ました。 以上、報告まで。 | ||||
|
投稿日時: 2007-05-30 17:09
同様の現象で悩んでいます。
ウィンドウ内にPDFを表示したいのですが、 Acrobat Readerが別に起動してそこに表示されてしまいます。 Acrobat Readerの設定のPDFをブラウザに表示にチェックが入っています。 URLをxxx.pdfにすれば良いそうですが それはどのように指定すればよいでしょうか? また、struts1.1を使用していて画面遷移はstruts-config.xmlに xxx.doというように指定して、対応するサーブレットが起動します。 この場合、どのようにURLを.pdfにできますでしょうか? 環境は WinXP SP2 IE 6.0 SP2 Acrobat Reader 7.09 です。 どうぞ、同じような経験のある方、ご意見ください。 | ||||
|
投稿日時: 2007-05-30 17:47
xxx.pdfというように指定して、対応するサーブレットを起動してはいかがでしょうか。 | ||||
|
投稿日時: 2007-05-30 19:01
自分の投稿で書きましたがweb.xmlで指定します。 <servlet> <servlet-name>DownLoadServlet</servlet-name> <servlet-class>sample.DownLoadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DownLoadServlet</servlet-name> <url-pattern>*.pdf</url-pattern> </servlet-mapping> こうです。 | ||||
|
投稿日時: 2007-05-31 13:36
ご返答ありがとうございます。
でもお聞きしたかったのは、Strutsでの設定方法だったりします。 Strutsでは、xxx.doというようにURLを指定して、それに対応したアクションが 起動します。なのでurlをxxx.pdfにどのように指定しようかと思いました。 ただ、その画面遷移先にjspなどを指定できるので、そこにpdfを指定すればよいかもしれません。(まだ未確認) そこで、そもそも通常のサーブレットでできるのかということで 教えて頂いた方法でやってみました。 でも、やっぱり結果は同じでした。 そこで、ただのpdfファイルへのリンクを作成しました。 これも、結果が同じ。(別途、Acrobat Readerが起動します) 他になにかチェック項目など、ございますでしょうか? | ||||
|
投稿日時: 2007-05-31 13:55
Strutsでも同じですよ。 Strutsでは一般的に*.doをorg.apache.struts.action.ActionServletにマッピングしますが そこを変えてやればよい、という話。 既存との組み合わせもあるでしょうから*.doも*.pdfもActionServletにマッピングすればよいのではないでしょうかね。 | ||||
|
投稿日時: 2007-05-31 17:30
>既存との組み合わせもあるでしょうから*.doも*.pdfもActionServletにマッピングすれ
>ばよいのではないでしょうかね。 なるほど〜。*.pdfもActionServletにマッピングすることで 表示されているURLは、〜.pdfになりました。 ありがとうございます。 しかし、環境や設定等も問題もあるようで いぜん、ブラウザ内には表示されません。 その他、チェック事項、どうようの現象の方などいらっしゃいますでしょうか? | ||||
|
投稿日時: 2007-05-31 19:11
Content-Dispositionがattachmentになっているんじゃないんですか?
inlineにする必要があります。 |