Name
Password

ファイルアップロード

  • 2008-10-26 01:17:12

ファイルをアップロードするタイプのアプリケーションを作るためには、org.seasar.ymir.FormFileクラスを使います。(StrutsのFormFileクラスと似ています。)

具体的には次のようにします。

まずテンプレートにtype="file"であるinputタグを持つformタグを書きます。

<form tal:attributes="action page:/upload.do" method="post" enctype="multipart/form-data">
  <p>ファイルを指定して下さい:<input type="file" name="file" /></p>
  <p><input type="submit" value="アップロード" /></p>
</form>

対応するPageクラスにはfileプロパティ用のSetterメソッドを用意します。プロパティの型はorg.seasar.ymir.FormFileとします。Setterメソッドには@RequestParameterアノテーションを付与します。(自動生成機能がONであれば自動的にSetterメソッドが生成されます。)

@RequestParameter
public void setFile(FormFile file) {
    this.file = file;
}

これで、アップロードされたファイルに関する情報を持つFormFileオブジェクトが自動的にfileプロパティにセットされます。