2009年8月18日火曜日

"GAE/J & T2"でファイルアップロード

スズキです。

サンプル見ながら、一番シンプルな形で作ってみました。
http://www.suz-lab.com/jiemamy/

ポイントとなる"web.xml"、"HTML"、"Java"は下記となります。

--------【web.xml】--------
<filter>
  <filter-name>uploadFilter</filter-name>
  <filter-class>org.t2framework.t2.filter.MultiPartRequestFilter</filter-class>
  <init-param>
    <param-name>uploadMaxSize</param-name>
    <param-value>100m</param-value>
  </init-param>
  <init-param>
    <param-name>uploadMaxFileSize</param-name>
    <param-value>100m</param-value>
  </init-param>
  <init-param>
    <param-name>uploadThresholdSize</param-name>
    <param-value>100k</param-value>
  </init-param>
  <init-param>
    <param-name>t2.mutipart.handler</param-name>
    <param-value>org.t2framework.t2.spi.impl.StreamMultipartRequestHandlerImpl</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>uploadFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
--------
http://code.google.com/p/suz-lab-gae/source/browse/trunk/suz-lab-apps/war/WEB-INF/web.xml

--------【HTML】--------
<form action="${t:url('/upload')}" method="post" enctype="multipart/form-data">
  <input type="file" name="file"/><br />
  <input type="submit" name="upload" value="upload"/>
  <span>${fileUploadResult}</span><br />
</form>
--------
http://code.google.com/p/suz-lab-gae/source/browse/trunk/suz-lab-apps/war/jiemamy/index.jsp

--------【JAVA】--------
@Page("upload")
public class UploadPage {

  @Default
  public Navigation index() {
    return Forward.to("/jiemamy/index.jsp");
  }

  @POST
  @ActionParam
  public Navigation upload(UploadFile file, HttpServletRequest request) {
    request.setAttribute("fileUploadResult", file.getName() + " is uploaded.");
      return Forward.to("/jiemamy/index.jsp");
  }

}
--------
http://code.google.com/p/suz-lab-gae/source/browse/trunk/suz-lab-apps/src/suz/lab/apps/page/UploadPage.java

次は、アップロードしたファイルを、データストアに保存できるようにしよう。

--
http://www.suz-lab.com

0 コメント: