如何使用MySQL数据库从ODK聚合访问照片?

时间:2012-01-30 17:02:31

标签: mysql image odk

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

谢谢。

1 个答案:

答案 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] /图像

米奇