- - PR -
PDFを画面に表示しないようにするには
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-28 10:28
こんにちは。Java(JSP)でWeb画面を開発しておりますが、HTMLについて、困っていることがあります。
「TEST」リンクをクリックすると、PDFファイルを保存するダイアログを開くようにしたいのですが、どうしても画面に直接PDF画面(Acrobatの画面)が表示されてしまいます。 <META>タグの記述を工夫すればよいのか、それとも無理なのか、検討もつきません。 どなたかご存知の方がいらっしゃいましたらご教授下さい。 よろしくお願い致します。 ★環境 IE6.0(SP1)、Acrobat5.0、JDK1.4.2 ★HTMLの例 <HTML> <HEAD> </HEAD> <BODY> <A HREF="test.pdf">TEST</A> </BODY> </HTML> |
|
投稿日時: 2005-03-28 10:38
詳しく見てないですが、この辺の話しが参考になりませんでしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18739&forum=12 |
|
投稿日時: 2005-03-28 13:09
(株)ぽちさんありがとうございます。
教えていただいたスレッドを見たのですが、不勉強でまだ良く理解できておりません。 少し時間がかかります。 いろいろ試していて、 CSVデータについて、同様にリンクを作成したところ、 PDFと同じようにCSVの中身が画面に表示されてしまっていたのですが、 以下のようなMETAの記述を追加したら、保存のダイアログが出てくるようになりました。 (前略) <META http-equiv="Content-Type" content="text/octet-stream"> (中略) <A HREF="test.csv">TEST</A> このようなHTMLだけを直すような、容易な方法はあるでしょうか。 よろしくお願い致します。 (別の会議室に移動した方が良い場合は、ご指摘下さい。) |
|
投稿日時: 2005-03-28 13:26
どもでふ。がると申します。
初手から恐縮ではあるのですが。原則的には、ゆーじんさんの希望の とおりにどうにかするのは「無理」です。 [理由] HTTPはサーバ/クライアントシステム形態です。 で。 JSPにせよCGIにせよ、そこら辺は「サーバ側で動いている」システムです。 そういったサーバ側のシステムは、極論すれば「何らかのデータを出力している」 だけ、です。 その「何らかのデータ」を「どんな風に処理するのか」は、純粋に クライアントの責任下で行われます。 もちろん、ある程度の指針が必要であったりすることから、サーバ側は Content-typeというヘッダなどを用いて「データの形をクライアントに 伝達する」程度のことは行うのですが。 極論からいえば、クライアントの設定しだいで「CSVが入ってきたら メモ帳で表示してExcelファイルが入ってきたらStarOfficeで処理する」 という動作もありえます。 で、原則的に「サーバ側ではクライアントのそういった具体的な設定までは 制御できない」ために、ゆーじんさんのおっしゃっている「PDFファイルが 入ってきたらPDFファイルを保存するダイアログを開くようにしたい」という のは、きわめて難しくなります。 [/理由] ちなみに、「何が入ってきたらこう挙動する」のうち、「何が入ってきたら」 の何の部分を判定する方法も複数ありまして。 ・HTTPレスポンスヘッダのContent-typeから判断:いっちゃんまとも ・URLのファイル拡張子から判断:よくありますがセキュリティ的に危ないケースも ・中身を見て判断:ある意味一番怖いです。たまに見かけますが… こういった複数の状況があるので、非常に困難かと思われます。 正直なところ、大抵のブラウザの場合「右クリックして"対象URLをファイルで保存"」 という機能がついてますので、Textコメントなどで誘導してユーザにそのように 操作させるのが一番無難だとは思うのですが。 上記の回答(にすらなってませんが(苦笑))が望まれているものとは 程遠いことは承知で、「HTTPというプロトコルがもつ本来の状況」を 少しでも伝えられれば、と思い、書いてみました。 もし余計なお世話でしたら、心からお詫びいたします。 |
|
投稿日時: 2005-03-28 13:47
がるがるさんありがとうございます。
とても勉強させて頂いております。 ユーザーに右クリックを促す方向でいきたいと思います。 サーバーのデータをどのようにクライアントが処理するか、ということは、「クライアントの設定」次第ということでしたが、もう少し詳しく言うと、ブラウザ(今回はInternetExplorer)の設定ということになるのでしょうか? 不勉強で申し訳ありませんが、どのような設定が、クライアント側のデータの処理方法に影響するのでしょうか? 今後のために理解したいと思います。 よろしくお願い致します。 |
|
投稿日時: 2005-03-28 14:13
ああ、すいません。
てっきりサーバ側で何かプログラム(servlet)が動いているのを前提に お話しされているのかと思っていました。 |
|
投稿日時: 2005-03-28 14:26
(株)ぽちさん、ありがとうございます。
サーバーでServletやBeanは使っているのですが、高度なことを自分ができないだけでして、 お恥ずかしいことです。。 f^−^; HttpReponseを使って、データを返すことにより、「保存ダイアログを表示する」ということができるのかどうか、まだ試してみるまでには至っていない、という次第です。 JSPでHTMLの細工をするだけで何とかなったら、と安易に考えてしまいました。 もっと勉強して理解できるようにしようと思います。 |
|
投稿日時: 2005-03-28 14:32
>ゆーじんさん
Windowsならコントロールパネルでフォルダオプションの設定で ファイルタイプの設定を行えば挙動が変わります。 拡張子に対してアクション・アプリケーション・パラメータを設定します。 |