[Seasar-user:3887] Re: S2JSF 1.1.0 でのファイルアップロード

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 6月 16日 (金) 19:40:00 JST


米林です。

From: "Toba Tetsuya" <[E-MAIL ADDRESS DELETED]>
Sent: Friday, June 16, 2006 7:29 PM

> S2JSF 1.1.0 Beta1 + Teeda 1.0 Beta 3 を利用しているのですが、
> ファイルアップロードのやり方が分かりません。
>
> S2JSF の FAQ では MyFaces の拡張タグを利用するように書かれて
> いますが、1.1.0 は JSF 実装が Teeda ですので、このやり方では
> できませんでした。

MyFacesの拡張コンポーネント(tomahawk)を使えば
可能なのですが(Calendarで検証済み)、FileUploadの
方法もお知らせしますので、しばらくお待ち下さい。


> また、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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
>
> 





Seasar-user メーリングリストの案内