javaServletでファイルダウンロード
javaServletを使ってファイルをクライアントにダウンドードする処理をメモ
1.動的webプロジェクトを作成
2.Servletを新規作成
パッケージ名とクラス名は自分で指定する
今回は「Download.java」と名付け、ダウンロードできるようにコードを書いていく。
「doGet」メソッド内に記述
private FileInputStream in; private ServletOutputStream os; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // パラメータ取得2 String fileName = request.getParameter("f"); try{ // コンテントタイプ設定 response.setContentType("application/octet-stream"); // ヘッダー設定 response.setHeader("Content-Disposition", "filename=\"" + fileName + "\""); // ダウンロードファイルの読み込み倍とストリーム作成 in = new FileInputStream(getServletContext().getRealPath("files/" + fileName)); // レスポンス出力バイトストリームを取得 os = response.getOutputStream(); // データ出力 byte[] buff = new byte[1024]; int len = 0; while ((len = in.read(buff, 0, buff.length)) != -1){ os.write(buff, 0, len); } } finally { // 終了処理 if(in != null) { try{ in.close(); } catch(IOException e) {} } if(os != null) { try{ os.close(); } catch(IOException e){} } } }
3.jspを新規作成
今回は「test.jsp」と名付け、submitボタンを作った。
<form action="Download"> <input type="submit" name="f" value="test.mp4" /> </form>
4.ダウンロードしたいファイルを適当な位置に配置
今回は「test.mp4」をダウンロード出来るようにする。
WebContentフォルダの中に「fileフォルダ」を作成し、その中にファイルを格納。
これで、実際にtest.jspにアクセスしダウンロードできる様になった。
参考サイト
http://www.cozzbox.com/wordpress/archives/968
http://www.syboos.jp/java/doc/file-download-by-servlet.html