Как получить доступ к фотографиям из ODK Aggregate с базой данных MySQL? - PullRequest
0 голосов
/ 30 января 2012

Мы установили OpenDataKit (ODK) Aggregate и используем базу данных MySQL.Я могу видеть данные в таблицах _PHOTO_BIN, _PHOTO_BN и PHOTO_REF - но как мне прочитать эти данные и отобразить изображение?Я вижу, что в таблице _PHOTO_BN есть поле с именем UNROOTED_FILE_PATH, которое содержит имя файла .jpg, но я не знаю, действительно ли это можно использовать для доступа к изображению?

Спасибо.

1 Ответ

0 голосов
/ 31 января 2012

Этот ответ был дан на сайте ODK Google Groups

Самый простой способ получить доступ к изображениям - использовать URL-адрес агрегирования ODK для Доступ к вложениям.

Таблицы базы данных структурированы так, что изображения неограниченного размера могут быть хранится в базе данных. Если размер вашего изображения меньше 1 МБ, он сохраняется в одна запись данных, но если у вас есть большие файлы изображений (или более длинный поток видео), они разбиты на несколько записей BLOB-объектов, и написание логики реконструировать их будет подвержен ошибкам.

Совокупный URL-адрес ODK, например, для формы GeoTagger на opendatakit.appspot.com, выглядит так: http://opendatakit.appspot.com/view/binaryData?blobKey=geo_tagger_v2%...

Если вы хотите маленькую миниатюру, укажите previewImage = true (как указано выше).

Если вы хотите скачать его как вложение (или получить доступ к оригиналу имя файла), вы также можете указать as_attachment = true, в этом случае он будет укажите имя файла в том виде, в котором оно было загружено.

BlobKey идентифицирует изображение. Как и во всех URL, параметры URLEncoded, что делает их очень некрасивыми. URLDecoded blobKey выглядит так:

geo_tagger_v2[@version=null and 
@uiVersion=null]/geotagger[@key=uuid:f6454ba6-2485-426f-8e1a-8981e463e6fe]/ Image

Это наименование в стиле XPath для элемента изображения в Xform. Это идентифицирует идентификатор формы: get_tagger_v2, версию и значения uiVersion (из атрибутов элемента верхнего уровня Xform), имя элемент верхнего уровня в форме (геотеггер), первичный ключ для ссылка на ссылку (uuid:f6454ba6-2485-426f-8e1a-8981e463e6fe) и XPath в форме к изображению. В этом случае изображение (поле имя изображения) находится непосредственно под элементом верхнего уровня в форме.

Если бы у вас были повторяющиеся группы, вам нужно было бы указать порядковый номер (1..n) группа повторения. Таким образом, для первой группы повторения вы должны иметь:

... / repeatElement [@ порядковые = 1] / изображений

и для 5-го повтора вы должны указать:

... / repeatElement [@ порядковые = 5] / изображений

Митч

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...