機能SAMPLE.5 「EzServlet/ファイル・アップロードする方法」


単純なファイルアップロードの方法を説明します。
記述の仕方は、入力フィールド(<input type="text">)や出力フィールド(<tg:out>)と同じ感じでOK!!!


HTMLに、ファイルアップロードを行うための「<input type="file">」タグを記述します。
後は、HTMLに対応するDTOにプロパティーとして、「java.io.File」を作成します。


DTOに作成する「java.io.File」のプロパティー名は、HTMLで記述した「<input type="file">」のname属性と名称と同名にします。


以下のHTMLを例に説明します。ファイル名は「Hoge.html」です。


<html>
<head></head>
<body>
<form method="POST">
  <input type="file" name="uploadFile">
  <input type="button" value="実行" name="execute">
</form>
</body>
</html>


DTOは以下の様になります。

public class Hoge implements Serializable {

   /** Hogeに対応するコントロラークラスを保持する属性です */
   public static final Class CONTROLLER_CLASS = HogeController.class;

   /** アップロードファイル「uploadFile」を格納する属性です。*/
   public File uploadFile;

}


CONTROLLERクラスは以下の様になります。

public class HogeController {

   /** 実行「execute」ボタンが押された時に呼び出されるメソッドです。*/
   public void execute(Hoge hoge) {
      // 画面入力値をHoge.javaにセットします。 
      request.set(hoge);
      // ファイルがアップロードされたかを確認します。 
      if(hoge.uploadFile != null) {
         System.out.println("ファイル名:"+hoge.uploadFile.getName()+"がuploadされました!");
      }
      // 表示するHtmlのDTOをセットします。
      response.setPage(hoge);
   }
}

HTMLの属性名とDTOのプロパティー名を同名にする事により、アップロードファイルを受け取る事が出来ます。

超かーんたーん(o^∀^)oネッ♪