電子フォームの添付ファイル項目に入力されたファイルを取得するには、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();
// 取得した入力ストリームからデータを読み出す処理を
// ここに記述します。
...
}
}
...
}