一回も披露したことのない豆知識

jspに<a href="ファイル名">ダウンロード</a>
でそのファイルをダウンロードできると思ってましたが
ダウンロードすることができません。
下記の様にアドレスを指定して試行錯誤している状態です。。
<a href="./test.txt">1</a>
<a href="sample.csv">2</a>
<a href="C:\test.txt">3</a>
<a href="C:\\test.txt">4</a>
<a href="C:\sample.csv">5</a>
<a href="C:\\sample.csv">6</a>
<a href="./sample.csv">7</a>
<a href="C:/test.txt">8</a>
<a href="C://test.txt">9</a>
<a href="C:\Program Files\Tomcat 6.0\webapps\servlet\pages\sample.csv">10</a>
<a href="C:\Program Files\Tomcat 6.0\webapps\servlet\pages\sample.txt">11</a>
<a href="C:\\Program Files\Tomcat 6.0\webapps\servlet\pages\sample.csv">12</a>
<a href="C:\\Program Files\\Tomcat 6.0\\webapps\\servlet\\pages\\sample.csv">13</a>
ちなみにOSはwindows XPです。
どなたかファイルのダウンロードについてご存じの方はご教授ください。

A 回答 (2件)

これは、IEなどブラウザが、ファイルの種類を検知して、


勝手に開いてしまう動作なので、
本来的には対処しようがないです。

なんとかやろうとする場合、
○直接ファイルにリンクを張らない。
○ダウンロード用のサーブレット/JSPを作成する。
○リンクは、そのサーブレット/JSPを対象とし、
 パラメータでファイルを指定する。
○サーブレット/JSP側で指定されたファイルを読み込む。
○サーブレット/JSPが読み込んだデータをレスポンスする。
という修正が必要です。

このレスポンスするときに、いくつか属性をヘッダーに設定する必要があります。
(属性)Content-disposition
Content-disposition: attachment; filename=ファイル名
これでファイル・ダウンロードと認識させる。

http://www.tohoho-web.com/lng/b200005/00050035.htm
http://www.stackasterisk.jp/tech/java/download01 …

この回答への補足

ご回答ありがとうございました。
http://www.stackasterisk.jp/tech/java/download01 …のHPを
参考にプログラムを動かしてみたのですがファイルのダウンロードは
できるようになりました。しかし、ダウンロードするファイルが何故か
C:\Program Files\eclipseのディレクトリからとなってしまいます。
ダウンロードするファイルのディレクトリを自由に設定するには
どのようにすればよいのでしょうか。お忙しいところ申し訳けありません
がご回答いただけませんでしょうか。よろしくお願いいたします。

補足日時:2007/06/07 20:18
    • good
    • 0

うーんと明らかに指定の仕方が、ローカルでのパス指定ですね。


C:\とか。。
Webサーバーを利用している以上、物理的に同じマシンでも、ローカルのパスを利用しません。

そのJSPファイルからみて相対パス(./xxxx.txtとか)や、Webアプリケーションのルートから見たパス(/aaa/bbb/xxxx.txtとか)を指定しないといけません。

あと、テキストファイル、Officeファイルは、ダウンロード画面が表示されずにブラウザ上で開かれる場合があります(ネットワーク的にはダウンロードしているのですが、保存ダイアログが表示されない)

なので、
<a href="./test.txt">1</a>
<a href="sample.csv">2</a>
<a href="./sample.csv">7</a>
これらがどう動作しているのか?
JSPファイルと、対象のファイルの位置関係の補足をお願いします。

この回答への補足

ご回答ありがとうございました。ご指摘の点について補足します。
<a href="./test.txt">1</a>
<a href="sample.csv">2</a>
<a href="./sample.csv">7</a>
とするとダウンロード画面が表示されずにブラウザ上で開かれてしまいます。

JSPファイルと、ダウンロード対象のファイルの位置関係についてですが
JSPファイルを
C:\Program Files\Tomcat 6.0\webapps\servlet\pages\sample.jspに置きます。
ダウンロードしたいファイルを
C:\Program Files\\Tomcat 6.0\webapps\servlet\download\sample.csvと
C:\download\sample.csvに置きたいと考えています。

補足日時:2007/06/07 11:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報