説明
DEXTUploadX5はファイルアップロード操作に4つのモードをサポートする。
- ORAF (デフォルト): アップロードするすべてのファイルを一回のリクエストで送信する。アップロードが完了すると応答データが一つになる。
- OROF: アップロードするファイルの数だけリクエストを行う。アップロードが完了するとファイル数分のレスポンスデータが生成される。
- EXTS: OROFと同じですが、大容量アップロードで、個別または全体のファイルのサイズが2GBを超える場合に使用されます。(大容量ファイルアップロードの例を参照).
- AWSS3: Amazon S3にファイルをアップロードするときに使います。(Amazon S3ファイルアップロードの例を参照).
var dx = dx5.get("component-id");
// アップロードモードをORAF, OROF, EXTS, AWSS3に設定する。
dx.setUploadMode("ORAF");
// すべてのローカルファイルをアップロードする。
dx.upload("AUTO");
// 選択したローカルファイルをすべてアップロードする。
dx.upload("SELECTED");
// チェックしたローカルファイルをすべてアップロードする。
dx.upload("CHECKED");
ORAFでファイルをアップロードすると、サーバー側でアップロードされたファイルを一度に取得することができます。
# サーバーサイド
...
FileItem item = null;
for (MultipartFile file : x5.getDEXTUploadX5_FileData()) {
item = (FileItem)file;
if (item.isEmpty() == false) {
item.save();
...
}
}
...
OROFでファイルをアップロードする場合、サーバーサイドからのリクエストは1ファイルにつき1回です。
# サーバーサイド
...
// OROFなので、サーバーに渡されるファイルフォーム要素は1つだけ。
FileItem file = (FileItem)x5.getDEXTUploadX5_FileData().get(0);
if (file.isEmpty() == false) {
file.save();
...
}
...
クライアントはわずかな設定でアップロード方法を変更できるが、サーバー側のコードではアップロード方法によってまったく異なる設定を行うことができる。
例
|
|
|
DEXTUploadX5は異なるクライアント製品とは異なり、フォームデータと仮想ファイル情報(削除済み)をサーバーに送信せず、純粋にローカルリソースのみをアップロードします。したがって、ファイル削除操作のようなアクションをサーバーに送信したい場合、アップロード処理ではなく、AjaxまたはForm submitを使用する必要があります。
|