[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 メーリングリストの案内