2012-01-30 79 views
0

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

谢谢。

回答

0

这个答案给在ODK Google Groups网站

访问图像最简单的方法就是通过ODK总网址 访问附件。

数据库表被构造成使得无界尺寸的图像可以被存储在数据库中 。如果你的图像尺寸是小于1 MB,它存储在 一个数据记录,但如果你有大的图像文件(或更长流 视频),它们分布在多个BLOB记录分割,并编写逻辑 来重建他们的将容易出错。

的ODK总网址,例如,在 opendatakit.appspot.com的GeoTagger形式,看起来像: http://opendatakit.appspot.com/view/binaryData?blobKey=geo_tagger_v2%...

如果你想要一个小缩图,指定previewImage =真(如上)。

如果你想下载它作为附件(或者访问原始文件名 ),你也可以指定as_attachment = true,在这种情况下,它会提供文件名为最初上传的文件名。

blobKey标识图像。与所有网址一样,参数为 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到图像。在这种情况下,图像(名称为Image的字段 )立即位于表单顶层元素的下面。

如果你有重复组,你就必须指定 重复组序号(1..N)。因此,对于第一次重复组,你会:

.../repeatElement [@序= 1] /图片

和第五重复,应指定:

.../ repeatElement [@序= 5] /图片

米奇

+0

而且,一旦我们在服务器上安装ODK总结,我们可以直接从我们的MySQL数据库访问照片数据。 – Chris 2012-02-24 16:40:24

+0

那么我们如何直接将图像保存到文件服务器?我通过上述建议的方式在浏览器中检索图像。请帮帮我。我必须在文件服务器中保存图像,只要网址中有更新.... – 2013-02-05 07:17:26