この回答は、ODK Google グループサイトで提供されました。
画像にアクセスする最も簡単な方法は、添付ファイルにアクセスするための ODK Aggregate URL を使用することです。
データベース テーブルは、無制限のサイズの画像をデータベースに格納できるように構成されています。画像サイズが 1 MB 未満の場合は 1 つのデータ レコードに格納されますが、より大きな画像ファイル (またはより長いストリーミング ビデオ) がある場合、それらは複数の BLOB レコードに分割され、それらを再構築するロジックを記述するとエラーが発生します。傾向がある。
たとえば、opendatakit.appspot.com の GeoTagger フォームの ODK Aggregate URL は次のようになります:
http://opendatakit.appspot.com/view/binaryData?blobKey=geo_tagger_v2%...
小さいサムネイルが必要な場合は、previewImage=true を指定します (上記のように)。
添付ファイルとしてダウンロードする (または元のファイル名にアクセスする) 場合は、as_attachment=true を指定することもできます。この場合、最初にアップロードされたファイル名が提供されます。
blobKey は画像を識別します。すべての URL と同様に、パラメーターは URL エンコードされているため、非常に見苦しくなります。URLDecoded blobKey は次のようになります。
geo_tagger_v2[@version=null and
@uiVersion=null]/geotagger[@key=uuid:f6454ba6-2485-426f-8e1a-8981e463e6fe]/ Image
これは、Xform のイメージ要素の XPath スタイルの命名です。フォーム ID: get_tagger_v2、バージョンと uiVersion の値 (Xform の最上位要素の属性から)、フォームの最上位要素の名前 (geotagger)、参照されている送信の主キー ( uuid:f6454ba6-2485-426f-8e1a-8981e463e6fe
) およびフォーム内の XPath をイメージに変換します。この場合、画像 (フィールド名 Image) は、フォームの最上位要素のすぐ下にあります。
繰り返しグループがある場合は、繰り返しグループの序数 (1..n) を指定する必要があります。したがって、最初の繰り返しグループでは、次のようになります。
.../repeatElement[@ordinal=1]/画像
5 回目の繰り返しでは、次のように指定します。
.../repeatElement[@ordinal=5]/画像
ミッチ