- ベストアンサー
マウスクリックでファイルをダウンロード
Webページ上で次のようなことは可能なのでしょうか? 1)ブラウザ上に表示されているWebページ上でマウスクリック(リンク、ボタン等) 2)必ずダウンロードのダイアログが開きダウンロードを行う 具体的に説明しますと、 WebページでPDFファイルへのリンクが張られているとします。 ブラウザでこの部分をクリックすると、PDFプラグインがインストールされていると ブラウザ内でこのPDFファイルが表示されてしまいます。 しかし、この表示をさせずに該当PDFファイルをダウンロードさせたいわけです。 リンクを右クリックして"ダウンロード"を選択すれば可能ですが、プラグインの 有無に関わらず左クリックで必ずダウンロード処理をさせたいということです。 これを実現させる方法がありましたらお教えください。 なお、WebページはCGI(Perl)を使用して表示していますので、HTML,JavaScript, Perlなら使用可能です。 以上、よろしくお願いします。
- みんなの回答 (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のプラグイン呼び出し 判定を切りぬけなければうまくいかないと思います。
その他の回答 (2)
- a-kuma
- ベストアンサー率50% (1122/2211)
FTPで落とすようにリンクを書けば良いんじゃないですか? <a href="ftp://ftp.どっか/落とすファイル.pdf">PDF file</a> って。
お礼
回答ありがとうございます。 FTPサーバは上がっていないのでNGです。
- mnabe
- ベストアンサー率33% (427/1283)
サーバの設定を変えられるのなら、.pdfをダウンロード設定にすれば出来ると思います。 サーバの種類を書いて下さいね。 また、私なら、PDFをそのまま置くのではなく、メールアドレスを入力して貰って、そのメールアドレスに添付でPDFを送るようにします。 いろんな意味で便利ですからね...。 どうしてもダウンロードさせたい場合には、PDFをそのまま置くのではなく、圧縮してファイルをおきます(数種類の圧縮形態の準備が必要ですので面倒ですけどね)
お礼
回答ありがとうございます。m(_ _)m 社内の仕組みなのでメールや圧縮といった手間(面倒な)のかかることはNGなんですよ(;_;)
お礼
回答ありがとうございます。 そうですか、IEだと勝手に判断してしまうんですか。 便利なのはいいですけど、勝手にやってしまのは困りものですね。 WWWサーバはApacheなのでMIME設定してみます。 IEの場合は右クリックでダウンロードしてもらうしかなさそうですねぇ。