こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイルダウンロードについて

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です。
どなたかファイルのダウンロードについてご存じの方はご教授ください。

投稿日時 - 2007-06-07 08:28:35

QNo.3063554

すぐに回答ほしいです

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

これは、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_01.jsp

投稿日時 - 2007-06-07 16:52:41

補足

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

投稿日時 - 2007-06-07 20:18:52

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

うーんと明らかに指定の仕方が、ローカルでのパス指定ですね。
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ファイルと、対象のファイルの位置関係の補足をお願いします。

投稿日時 - 2007-06-07 11:10:55

補足

ご回答ありがとうございました。ご指摘の点について補足します。
<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:12

あなたにオススメの質問