我们已经安装了OpenDataKit(ODK)Aggregate,我们正在使用MySQL数据库。我可以看到_PHOTO_BIN,_PHOTO_BN和PHOTO_REF表中的数据 - 但是如何读取这些数据并显示图像?我在_PHOTO_BN表中看到有一个名为UNROOTED_FILE_PATH的字段,其中包含.jpg文件名,但我不知道这是否可以实际用于访问图像?
谢谢。
答案 0 :(得分:0)
这个答案是在ODK Google Groups网站上提供的
访问图像的最简单方法是通过ODK聚合URL 访问附件。
数据库表的结构使得无限大小的图像可以 存储在数据库中。如果您的图像大小低于1 MB,则将其存储在 一个数据记录,但如果你有更大的图像文件(或更长的流媒体 视频),它们被分成多个blob记录,并编写逻辑 重建它们将容易出错。
例如,GeoTagger表单上的ODK聚合URL opendatakit.appspot.com,看起来像: http://opendatakit.appspot.com/view/binaryData?blobKey=geo_tagger_v2%...
如果您想要一个小缩略图,请指定previewImage = true(如上所述)。
如果要将其作为附件下载(或访问原件 filename),你也可以指定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,版本和uiVersion值
(来自Xform顶级元素的属性),名称
表单中的顶级元素(geotagger),主键
正在引用的提交(uuid:f6454ba6-2485-426f-8e1a-8981e463e6fe
)和
表单中的XPath到图像。在这种情况下,图像(字段
name Image)紧挨着表单中的顶级元素。
如果你有重复的组,你必须指定序数(1..n) 重复组。因此,对于第一个重复组,您将拥有:
... / repeatElement [@序= 1] /图像
并且对于第5次重复,您将指定:
... / repeatElement [@序= 5] /图像
米奇