ファイルアップロード/ダウンロード

ローカルで作ったファイルをサーバに送信し、保存したり、サーバ側のファイルをダウンロードする方法。

ファイルアップロード
HTML, JSP側の実装

HTML, JSP側では、Inputタイプ(File)のフィールドを使い、 フォームに、ENCTYPE="multipart/form-data" を追加する。

<FORM NAME="Form1" METHOD="POST" ACTION="/url" ENCTYPE="multipart/form-data">
    <INPUT TYPE="file" name="FileUpload">
    ...その他のコード
</FORM>


サーバ側の実装

RFC 1867をきちんとお勉強すれば実装できるんだろうけど、ここでは手っ取り早い方法を示します。

ファイルダウンロード
単純にHTMLベースで解決するばあい、Webサーバで仮想ディレクトリを設定し、ダウンロードさせるファイルにリンクを設定す る。

または、サーバ側でファイルを編集して、ローカルに送りつける場合、HttpServletResponse.getOutputStream ()で取得したストリームに対して出力する。

	// サンプルソース
	response.setContentType("application/octet-stream");
	response.setHeader("Content-Disposition", "attachment; filename=\"" + this.filename + "\"");
	response.setHeader("Content-Description", "file download test");

	// サーバ側のファイルをローカルに出力する場合
	BufferedInputStream in = new BufferedInputStream(new FileInputStream("/usr/local/file/test.doc"));
	BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());

	int x;
	while ((x = in.read()) >= 0) {
		out.write(x);
	}
	in.close();
	out.close();

試してませんが、最近では、Jakarta Commonsのfile Uploadが手っ取り早いかもしれませんね。


TOPに戻る