[Seasar-user:3886] S2JSF 1.1.0 でのファイルアップロード
Toba Tetsuya
[E-MAIL ADDRESS DELETED]
2006年 6月 16日 (金) 19:29:56 JST
S2JSF 1.1.0 Beta1 + Teeda 1.0 Beta 3 を利用しているのですが、
ファイルアップロードのやり方が分かりません。
S2JSF の FAQ では MyFaces の拡張タグを利用するように書かれて
いますが、1.1.0 は JSF 実装が Teeda ですので、このやり方では
できませんでした。
また、HTML を
<form enctype="mutilpart/form-data">
<input type="file" name="file">
<input type="submit" m:action="#{hogeAction.uploadAction}">
</form>
とし、request/application の setter を追加して、Commons
FileUpload を使って自力でなんとかしようとしましたが、
multipart/form-data のせいか、肝心の hogeAction#uploadAction
が呼んでもらえませんでした。
public String uploadAction() {
String tempPath = application.getRealPath("/work/");
String imagePath = application.getRealPath("/upload/");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 1024 * 2);
factory.setRepository(new File(tempPath));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(-1);
try {
List<FileItem> list = upload.parseRequest(request);
for (FileItem fileItem : list) {
if (fileItem.getName() != null
&& !fileItem.getName().equals("")) {
File file = new File(imagePath + fileItem.getName());
fileItem.write(file);
}
}
} catch (FileUploadException e) {
throw new RuntimeException(e);
} catch (Exception e) {
throw new RuntimeException(e);
}
return null;
}
何か良い方法があればご教示願います。
--
鳥羽 哲也
Seasar-user メーリングリストの案内