機能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ネッ♪