Javaでファイルアップロード
Javaでのファイルアップロード。Jakarta Commons FileUploadを使った。JavaDoc。
・インストール
FileUploadの他にJakarta Commons IOも必要。
・使用法
普通にフォームを用意して
<form name="foo" method="post" enctype="multipart/form-data" action="someServlet"> <input name="filename" type="file"> <input name="submit" type="submit" value="submit> </form>
サーブレット側ではServletFileUploadクラスのparseRequestメソッドを使うとListが返ってくる。このListにはアップロードされたファイルとフォームの値が混在してるので以下のようにする。
//インスタンスの生成は省略
List list = sfu.parseRequest(request);
Iterator i = list.iterator();
while (i.hasNext()) {
FileItem item = (FileItem)i.next()
if (item.isFormField()) {
// フォームの値の処理
} else {
//アップロードされたファイルに対する処理
}
}
なお、@ITでも同様の質問があったけど、multipartで送られてきた場合request.getParameter()ではフォームの値を取得出来ないので注意。