ORAF/OROFによるアップロード

ホーム > Basic examples > 例03

説明

DEXTUploadX5はファイルアップロード操作に4つのモードをサポートする。

var dx = dx5.get("component-id");

// アップロードモードをORAF, OROF, EXTS, AWSS3に設定する。
dx.setUploadMode("ORAF");
// すべてのローカルファイルをアップロードする。
dx.upload("AUTO");
// 選択したローカルファイルをすべてアップロードする。
dx.upload("SELECTED");
// チェックされたローカルファイルをすべてアップロードする。
dx.upload("CHECKED");

ORAFでファイルをアップロードすると、サーバー側でアップロードされたファイルを一度に取得できる。

# サーバー側				
...
dextnj = new FileUpload(request, env);  

// クライアントから送られてきたデータのうち、ファイルデータ部分をすべて一時ファイルとして保存する。
// テンポラリ保存場所は Environment # setTempRepository メソッドで設定します。
dextnj.prepare();  

// FileUpload # getFileItemメソッドで1つずつ呼び出すこともできますが、getFileItemsメソッドでコレクションオブジェクトを取得します。
List<FileItem> items = dextnj.getFileItems();

// アップロードされたモード・ファイルを、同じループ・ステートメントを使って一度に取得します。
FileItem file = null;
for (int i = 0; i < items.size(); i++) {
	file = items.get(i);
	if (file.isEmpty() == false) {
		file.save();
		...
	}
}
...

OROFでファイルをアップロードする場合、サーバーサイドからのリクエストは1ファイルにつき1回となる。

# サーバー側					
...
dextnj = new FileUpload(request, env);		
	
dextnj.prepare();

// OROFなので、サーバーに渡されるファイルフォーム要素は1つだけです。
FileItem file = dextnj.getFileItem(0);
if (file.isEmpty() == false) {
	file.save();
	...
}
...

クライアントはわずかな設定でアップロード方法を変更できますが、サーバー側のコードではアップロード方法によってまったく異なる設定が可能です。

DEXTUploadX5は異なるクライアント製品とは異なり、フォームデータと仮想ファイル情報(削除済み)をサーバーに送信せず、純粋にローカルリソースだけをアップロードします。したがって、ファイル削除操作のようなアクションをサーバーに送信したい場合、アップロード処理ではなく、AjaxまたはForm submitを使用する必要があります。