• 締切済み

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

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

  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

  • 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

  • エクセルファイルのダウンロード

    cgiにてブラウザ上のボタンを押すと、xlsファイルをダウンロードさせたいのですが、ブラウザ上でいきなり開いてしまいます。他のPCで同じ動作をテストしてみたところ、いきなりxlsのファイルが開かずに、開くか保存かのダイアアログが出ます(正常)。ファイルをいきなり開かずに、保存させたいのですが何か設定が必要なのでしょうか。 OS:win2000 ブラウザ:IE6 office2000です。どなたかご教授いただければ有難いです。

  • Excelを保存する度に生成されるバイナリ?ファイル

    Windows XPでOffice Excel 2003を使用。 あるExcelファイル"○○○○○.xls"を保存すると 保存したExcelファイル"○○○○○.xls"とは別に 例えとして○○○○○.xls~RF1c27ad0.TMP というファイルが保存場所に同時に自動的に生成されてしまいます。 ちなみに~×××××.TMPの"×"は保存する度に 定まった英字数の並びではなくそのたび毎にランダムになっています。 アプリケーションの自動修復を試みても直りません? 今までこんな現象はなかったのですが、原因がわかりません。 おわかりの方、ご教授願いませんか? よろしくお願いします。

  • ダウンロードしたファイルを開くとエラーがでる!

    お世話になっております。 WindowsXPです。 とあるファイル(CSV)をダウンロードします。 「ファイルのダウンロード」という画面→「保存」クリック (ちなみに デスクトップに保存します) 「ダウンロードの完了」という画面になり、「ファイルを開く」ボタンを クリックすると、 エラー画面になります。 「'C:\Documents.xls'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうか確認してください。[ファイル]メニューの最近使用したファイルの一覧からファイルを開こうとしている場合は、そのファイルの名前が変更されてないこと、移動または削除されてないことを確認してください。」 という画面です。 保存したのは、デスクトップ画面なのに、'C:\Documents.xls'と認識されているのです。OKボタンをクリックすると、また今度は別な場所を見ているよう なファイル名で~が見つかりません・・・とまた同じ文章でエラーがでます。 またOKボタンをクリックすると、やっとファイルが開いて見えます。 結局ファイルは開けるのですが、このエラーが気になります。 どうしたらよいでしょうか

  • ダウンロードしてファイルに保存ができない

    サイトからゲームなどのファイルをダウンロードしようとして「ダウンロード」と書かれているリンクをクリックすると、いままではダウンロードして保存するために保存場所を聞いてきたのですが、保存しようとせずに、なぜかそのファイルを「一時ファイル」に保存して直ぐに開こうとしてしまうという問題を抱えております。 別にそのリンクを右クリックして「対象をファイルに保存」を選べばいいのですが、それを選んでもうまくいかないこともあるので少し困っています。 どなたかお暇でしたら、質問に答えていただけたら幸いです。 OSはXP Home、 ブラウザはInternetExplorerです。

  • CGIでファイルのダウンロードをさせたい

    ホームページでファイルのダウンロードをさせたいの ですが、セキュリティの関係もあって元ネタのファイル はURLで指定できるところにはありません。 そこで、C言語でCGIを作成し、Content-Type: text/plain\n\n などとし、CGI側でファイルをOPEN して吐き出させたところ、ブラウザー(IE5)では ダウンロード画面が表示されず。CGIが出力した内容が そのまま表示されてしまいます。CGIでの処理が足りない と思われますが、どうしたらCGIからブラウザーへダウンロードの指示を出すことができるのか教えて下さい。

    • 締切済み
    • CGI
  • サーバー側で、XML,XSLを整形されたファイルを出力する方法?

    XMLについて、理解が浅いのですが ローカルでは XMLファイルとXSLファイルがあれば、 sabcmdを使えば、変換できますが、 例えば、WEB(CGI:Perl)でサーバーに XML,XSLファイルが合った場合に どのようにクライアント(ブラウザ)に出力させれば良いのでしょうか? サーバー側でxmlファイルとxslファイルを sabcmdで変換させて、結果を読み込んで出力させるのが筋でしょうか? いまいち理解していなくて済みません。

    • ベストアンサー
    • Perl
  • VBAで名前を付けて保存

    テキストファイルをエクセル出力する処理を考えております。 テキストファイルを開き、名前をつけて保存する処理が上手くできません。 シート1のある2つのセルに入力パスと出力パスが設定されているとします。 例えばcells(4,4)に入力パスが設定されており(¥~~~.txt) cells(6,4)に出力パスが設定されており(¥~~~xls) 上記のような状態とします。 cells(4,4)にあるテキストファイルを開き、 それを拡張子をエクセルにしてcells(6.4)にある出力先に名前をつけて保存をしたいのです。 オープンする場合は Workbooks.OpenText Filename:=Workbooks("○○.xlsm").Sheets(1).Cells(4, 4).Value & ".TXT" で上手くいきました。 しかし保存の際に ActiveWorkbook.SaveAs Filename:=Sheets(1).Cells(6, 4).Value & ".xls" で実行するとエラーがでてしまいます。 どうすれば良いでしょうか。

  • サーブレットからファイル名を指定してのダウンロード

     サーブレットからファイル名(csv)を指定してダウンロード する機能を開発しております。 操作の流れ  (1)HTMLでsubmitボタン押下→ダウンロードを問い合わせる   ダイアログ表示  (2)「このファイルをディスクに保存する」を選択し[OK]を押す  (3)「ファイルの保存」ダイアログで保存  (4)「ダウンロードの完了」ダイアログが表示される→[ファイル   を開く]を押すとexcelが起動しダウンロードしたcsvが表示   される。 しかし、(1)でダウンロードするよう促されるのがCSVではなく HTMLから呼び出したサーブレットなのです。  一応(2)~(4)の操作でcsvをダウンロードできますが、なぜか ブラウザ上でマウスポインタが作業中の状態(矢印と砂時計)の まま変りません。  次に、(1)で「このファイルを上記の場所から開く」を選択し 試しました。すると、同じダイアログでcsv(MASTER_*_*.csv) をダウンロードするよう促されます。 今度は(2)~(4)でダウンロードでき、上で起こったような現象 も起こりません(通常時のマウスポインタ)。  最初からcsv(MASTER_*_*.csv)をダウンロードするダイアログを 表示したいです。  そこで、最初のダイアログが表示されないよう設定したいと思い ますが、[この種類のファイルであれば常に警告する] チェックのON/OFF を切り替えられせん。   サーブレットの一部です。 res.setContentType("text/plain; charset=iso-2022-jp"); res.setHeader("Content-Disposition","attachment; filename=MASTER_" +  groupInp + "_" + factoryCode + "_" + date +".csv"); また、上記の"attachment; を"inline;に変えると、ブラウザの中にexcel が起動されてしまいます。 最初のダイアログの表示をサーブレットによって制御することは可能 でしょうか?ご存知の方いらっしゃればご教示いただきたく。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • ファイルのダウンロードについて!

    インターネットでファイルをダウンロードをする際に、あと何分とか何秒とかいう小さい画面がでていたんですが、今日やるとその画面がでてこなくて、ファイル保存の場所すら指定できたい状態です。何か解決策はないでしょうか?教えてください!よろしくお願いします。

  • ブラウザIE上で開いたExcelファイルを書換え、またサーバーに保存するには

    ブラウザIE上で、サーバー上にあるExcelファイル (例えば http://test-test.com/aaa.xls)を開き 開いたExcelファイルaaa.xlsの内容を書換え、 ブラウザIE上で、またサーバーに保存したいと思います。 保存の仕方を教えて下さい。 WindowsXP Excel2000