電子フォームの添付ファイル項目に入力されたファイルを取得するには、FormDataBeanクラスのgetAttachedFileKeysメソッドとgetAttachedFileメソッドを以下のように使用します。
電子フォームの添付ファイル項目に設定した項目名の一覧をgetAttachedFileKeysメソッドで取得します。このメソッドはjava.util.Iteratorインタフェースで項目名一覧を返却します。
項目名一覧から取得した個々の項目名を指定して、getAttachedFileメソッドで添付ファイルを取得します。ファイルはcom.fujitsu.uji.util.MimeSourceクラスとして返却されます。
MimeSourceクラスのgetInputStremメソッドで入力ストリームを取得します。
入力ストリームから添付ファイルを読み込みます。
ファイル名を取得するにはMimeSourceクラスのgetFileNameメソッドを使います。取得されるファイル名は、クライアントの環境(Webブラウザが動作している環境)におけるファイル名です。
以下は、添付ファイルを取得するプログラムの例です。
import java.util.Iterator; import java.io.InputStream; import com.fujitsu.uji.DispatchContext; import com.fujitsu.uji.xml.XmlDataBean; import com.fujitsu.uji.formc.FormDataBean; import com.fujitsu.uji.util.MimeSource; ... public Object ensureOk(DispatchContext context, FormDataBean dataBean) { // 項目名一覧を取得します。 Iterator it = dataBean.getAttachedFileKeys(); while (it.hasNext()) { String key = (String)it.next(); // 項目名を指定して、MimeSourceを取得します。 MimeSource ms = dataBean.getAttachedFile(key); if (ms != null) { // ファイル名を取得します。 String fileName = ms.getFileName(); // 入力ストリームを取得します。 InputStream in = ms.getInputStream(); // 取得した入力ストリームからデータを読み出す処理を // ここに記述します。 ... } } ... }