• ベストアンサー

マウスクリックでファイルをダウンロード

Webページ上で次のようなことは可能なのでしょうか? 1)ブラウザ上に表示されているWebページ上でマウスクリック(リンク、ボタン等) 2)必ずダウンロードのダイアログが開きダウンロードを行う 具体的に説明しますと、 WebページでPDFファイルへのリンクが張られているとします。 ブラウザでこの部分をクリックすると、PDFプラグインがインストールされていると ブラウザ内でこのPDFファイルが表示されてしまいます。 しかし、この表示をさせずに該当PDFファイルをダウンロードさせたいわけです。 リンクを右クリックして"ダウンロード"を選択すれば可能ですが、プラグインの 有無に関わらず左クリックで必ずダウンロード処理をさせたいということです。 これを実現させる方法がありましたらお教えください。 なお、WebページはCGI(Perl)を使用して表示していますので、HTML,JavaScript, Perlなら使用可能です。 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Excelファイルで似たようなことをしたい、といった質問に最近答え ました。んが、外部アプリケーションを開くのではなくpdfのように プラグインの場合はこの手(URL末尾に「?xxx.zip」を付ける)は 使えないようです。 サーバ側にMIME Typeを設定し、それをContent-typeとして送信する のが本来まっとうな方法で、例えばApacheを使っていて.htaccessに よる設定が許されている環境なら(あるいはコンフィグファイルを 編集できるのなら) AddType appilcation/octet-stream pdf などにすれば、Netscapeならそれを参照しますのでダウンロードできる ようになります。(場合によってはバイナリデータがブラウザ画面に ただ表示されることもあります) この設定ができなくても、CGIでContent-typeとして適切なMIMEを吐き、 続けてpdfファイルの中身をただ出力する手がありますね。 でもIEでは、そんなことにおかまいなく拡張子だけを見てpdfだと判断 しているようで、うまくいきません。 (ftpサイトにおけば…という意見がここでもあるようですが、 httpではなくftpの場合Content-typeが送られませんので、たまたま httpではapplication/pdfのContent-typeが送られていたファイルが、 ftpだとその情報が送られなくなったため、Netscapeがただダウンロード するようになった、というだけの話です。IEはやっぱり拡張子で 勝手に判断するはずです) したがってサーバ側で工夫してもいかんともしがたいでしょう。 やはり圧縮したりして別の拡張子にし、IEのプラグイン呼び出し 判定を切りぬけなければうまくいかないと思います。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=74090
HAL68000
質問者

お礼

回答ありがとうございます。 そうですか、IEだと勝手に判断してしまうんですか。 便利なのはいいですけど、勝手にやってしまのは困りものですね。 WWWサーバはApacheなのでMIME設定してみます。 IEの場合は右クリックでダウンロードしてもらうしかなさそうですねぇ。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

FTPで落とすようにリンクを書けば良いんじゃないですか? <a href="ftp://ftp.どっか/落とすファイル.pdf">PDF file</a> って。

HAL68000
質問者

お礼

回答ありがとうございます。 FTPサーバは上がっていないのでNGです。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

 サーバの設定を変えられるのなら、.pdfをダウンロード設定にすれば出来ると思います。  サーバの種類を書いて下さいね。  また、私なら、PDFをそのまま置くのではなく、メールアドレスを入力して貰って、そのメールアドレスに添付でPDFを送るようにします。  いろんな意味で便利ですからね...。  どうしてもダウンロードさせたい場合には、PDFをそのまま置くのではなく、圧縮してファイルをおきます(数種類の圧縮形態の準備が必要ですので面倒ですけどね)

HAL68000
質問者

お礼

回答ありがとうございます。m(_ _)m 社内の仕組みなのでメールや圧縮といった手間(面倒な)のかかることはNGなんですよ(;_;)

関連するQ&A