説明
メタデータは'key=value'の形式で表現される追加データで、ファイルごとに保持することができます。(バージョン3.2.0.0から、IEモジュールはローカルファイルに対してのみメタデータを持つことができるようになった)。
メタデータを登録するには、ローカルファイルのindex(order)を使ってkeyとvalueを登録します。
var dx = dx5.get("component-id");
// 6番目の項目のメタデータのキー "user "の値を返す。
var userValue = dx.getMetaDataByIndex(5, "user");
// 6番目の項目のメタデータ内の "user "キーの値を "ABC "に設定する。
dx.setMetaDataByIndex(5, "user", "ABC");
// 6番目の項目のメタデータの "user "キーを削除する。
dx.deleteMetaDataByIndex(5, "user");
メタデータはローカルファイルのアップロード時にサーバーに渡されます。
サーバー側のコードでは "DEXTUploadX5_MetaData "がフォーム名として渡されるので、フォームデータからメタデータを取得することができる。
フォーム名("DEXTUploadX5_MetaData")に渡されるメタデータは、アップロードされたファイルの順番に従います。
# サーバーサイド
List<MultipartFile> items = x5.getDEXTUploadX5_FileData();
List<String> metadata = x5.getDEXTUploadX5_MetaData();
for (int i = 0, len = items.size(); i < len; i++) {
file = (FileItem)items.get(i);
form = metadata.get(i);
if (file.isEmpty() == false) {
file.save();
// レスポンス・データ・バッファに、メタデータと保存されたファイルの場所を書き込みます。
sb.append(String.format("F:%1$s, M:%2$s\n", file.getFilename(), form));
}
}
...
1つのファイルに対して複数のメタデータがある場合、サーバーに渡されるメタデータは、"key1=value1[SPLT]key2[SPLT]value2[SPLT]key3[SPLT]value3 "形式ではなく、"key1=value1[SPLT]key2=value2[SPLT]key3=value3 "形式となります。
データを得るには、トークンを"[SPLT]"という文字列で区切り、奇数番目のキーをキー、偶数番目のキーを値とする。
例
メタデータはローカルファイルにのみ適用されます。(ローカルファイルを追加してテストする)