0

我们已经安装了 OpenDataKit (ODK) Aggregate,并且我们正在使用 MySQL 数据库。我可以看到 _PHOTO_BIN、_PHOTO_BN 和 PHOTO_REF 表中的数据 - 但如何读取这些数据并显示图像?我在 _PHOTO_BN 表中有一个名为 UNROOTED_FILE_PATH 的字段,其中包含一个 .jpg 文件名,但我不知道这是否真的可以用来访问图像?

谢谢你。

4

1 回答 1

0

这个答案是在ODK Google Groups网站上给出的

访问图像的最简单方法是通过 ODK 聚合 URL 访问附件。

数据库表的结构使得可以将无限大小的图像存储在数据库中。如果您的图像大小小于 1 MB,则将其存储在一个数据记录中,但如果您有较大的图像文件(或较长的流式视频),它们将被拆分为多个 blob 记录,并且编写重建它们的逻辑将是错误的-易于。

例如,opendatakit.appspot.com 上 GeoTagger 表单的 ODK 聚合 URL 如下所示: 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

这是 Xform 中图像元素的 XPath 样式命名。它标识了表单 id:get_tagger_v2、version 和 uiVersion 值(来自 Xform 顶级元素的属性)、表单中顶级元素的名称(geotagger)、被引用的提交的主键(uuid:f6454ba6-2485-426f-8e1a-8981e463e6fe) 和表单内的 XPath 到图像。在这种情况下,图像(字段名称 Image)就在表单中顶级元素的下方。

如果您有重复组,则必须指定重复组的序号 (1..n)。因此,对于第一个重复组,您将拥有:

.../repeatElement[@ordinal=1]/图像

对于第 5 次重复,您将指定:

.../repeatElement[@ordinal=5]/图像

米奇

于 2012-01-31T15:21:07.003 回答