- 締切済み
DBからPDFを取得して別画面で表示したい
あるページにリンクが貼り付けてあります。 このリンクをクリックすると、 DB(SQL Server)からPDFファイルを取得し 別画面で表示するようにしたいと思っています。 ソースは下記のように書きました。 画面側(XXX.asp) <a href="../common/AAAAA.asp" target="_blank"><img src="images/banner.jpg" border="0" /></a> 呼び出され側(AAAAA.asp) Dim st Dim imgdata Dim rs Dim strSQL Dim column strSQL = "SELECT ファイル " strSQL = strSQL & "FROM 画像 " strSQL = strSQL & "WHERE ファイル名 = 'ファイル名' " 'レコードセット Set rs = querySql( conn, strSQL ) imgdata = rs.fields("ファイル").value Response.ContentType = "application/pdf" Call Response.AddHeader("Content-Transfer-Encoding", "binary") Call Response.AddHeader("Cache-Control", "no-cache") Call Response.AddHeader("Pragma", "no-cache") Call Response.BinaryWrite(imgdata) このようにすると画面には表示されるのですが IE7で表示したときのタブの部分は どうやったら指定できるのでしょうか? 「PDFファイル」と表示させたいです。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
新規ウィンドウではなく、新しいタブで上記ASPを実行したい場合、 どうすれば良いか?って質問ですか? もし、そうであれば、できない というのが回答になります。 「新しいタブで開く」のかは、あくまでそのサイトを見ている閲覧者の判断に委ねられているため、ASPやHTMLで制御することはできません。 そのため、IE7の新しいタブを制御してはいけないというのが正論です。 <a href="../common/AAAAA.asp" target="_blank"> のように新規ウィンドウで起動するものは閲覧者の判断なくできるのに・・・という意見もおありでしょうが、基本は、新しいウィンドウを作成しなくても良いようなWebアプリケーションをASPで作成するのが本来のあるべき姿です。 W3CのWCAG(ウェブコンテンツアクセシビリティガイドライン)でも http://www.zspc.com/documents/wcag10/ 「新しいウインドウをターゲットとするようなフレームを使用しないようにしてください。」と記載してある通り、新しいウィンドウを開くことをユーザに周知しない限り、プログラム作成者の意図で新規ウィンドウを立ち上げるべきではないということが言えるかと思います。 新しいウィンドウや新しいタブを立ち上げてPDF表示するプログラムをASPで作ることに否定はしませんが、そもそもの考え方/設計思想が間違っていますので、もう一度、その辺りはご検討いただきたいと思います。 (PDFファイルを生成した後、リダイレクトしてダウンロードさせる方が設計理論としては正しいです)
お礼
次回からは「リダイレクトしてダウンロードさせる」で設計したいとおもいます。