• 締切済み

ファイルをバイナリでダウンロードして保存する方法。

こんにちは。 Javaまだまだわけわからないことだらけ状態の「AKITO!!」です。 今、Javaを勉強しているのですが、課題でタイトルのような事を してください。と、いわれました。 操作の流れとしては・・・ ブラウザ(ダウンロードファイルの場所と名前を記入「OK」ボタンを押し下げ)        ↓ サーブレット(ここで何らかの処理)        ↓ ブラウザ(画面上にWINDOWSの「ファイルを保存」ダイアログが表示される)        ↓ 場所を指定して保存 と、したいのです。 流れはこのように説明を受けて組み立てられたような気になっているのですが 肝心のサーブレットの中身の処理がいまいち、出てきません。 今、コンテンツタイプの設定を変更すればいいのかな?とか 普通に画面出力するときはPrintWriterをつかってoutで出力してるから そこを変えればいいのかな?等など、頭の中でぐるぐる回ってしまい 混乱状態です。 もし、何かいいアイデアや、こんなやり方がある。など、よろしければ教えていただけないでしょうか。ヒントだけでも、すいませんがよろしくお願いします。 ほんと一杯一杯なんです。(泣 どうかよろしくお願いします。 PS:ファイルタイプは「XLS?XSL?」と「XML」、「TXT」などを予定しています。

みんなの回答

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

他のページへ飛ばせばいいと思います。つまり、Redirectしちゃう。普通は、Redirectする先は、ウェブページですが、ファイル名を指定してしまえば、ダウンロードが始まるはずです。 下記は、サンプル(DownFileRedirect.java)で、サーバー上のUNLHA.DLLを指定しています。GetでもPostでも動作すると思います。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class DownFileRedirect extends HttpServlet { String downfile = "http://www2.lint.ne.jp/~lrc/win/acssesary/archive/dll/unlha/ulh3155f.exe"; public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { res.sendRedirect(downfile); } public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { res.sendRedirect(downfile); } }

関連するQ&A