2013-03-19 70 views
0

我已经编写了用于在java中上传和显示图像的代码。我正在使用liferay。 因为据我所知liferay service.xml没有Blob我使用了一种替代方法,通过修改portlet-model-hints.xml文件。最初用于存储图像的字段是在上述文件中改为Clob的字符串。建立服务后,它变成了一个长文。我将图像作为长文本存储,当我尝试显示文本时显示。我应该如何显示存储在mysql数据库中的图片?上传并显示来自liferay中数据库的图像

回答

1

创建呈现的字段值作为图像的钩

你应该看看Liferay的jackrabit配置,也许它可以(从你没有将其存储在第一位置的文字是什么向后蜕变)帮助你存储在首位

+0

Matthias G: 感谢您的回复。 在liferay社区的许多论坛中,我读到service.xml中没有blob类型。请问我可以帮助我如何使用jackrabbit? 我正在阅读foll的过程。链接: http://www.liferay.com/community/wiki//wiki/Main/Using+Jackrabbitwithwith+Database#section-Using+Jackrabbit+with+Database-Steps+to+hooking+up+Jackrabbit + to + MySQL 总之你可以总结一下做些什么? – 2013-03-19 10:35:13

+0

我对jackrabbit没有多少经验,我所知道的是,你需要某种属性在portal-ext中告诉jackrabbit将图像存储在db(dl.hook.impl = com。 liferay.documentlibrary.util.JCRHook)。此外,您需要执行链接中描述的步骤。也许这个链接[http://docs.oracle.com/cd/E19316-01/820-7054/gifgn/index.html](http://docs.oracle.com/cd/E19316-01/820-7054 /gifgn/index.html)可以帮助你,但我认为它相当于你的。 – 2013-03-19 10:56:02

+0

Matthis G: 那么这是否意味着我不必使用service.xml? – 2013-03-19 11:17:30

0

我看着service.xml到文档库内容(see online here)相关的DB中的图像,并...

... 
<column name="repositoryId" type="long" /> 
<column name="path" type="String" /> 
<column name="version" type="String" /> 
<column name="data" type="Blob" /> 
... 

因此具有Blob类型。
我希望这可以帮助你。

+0

Dani: 感谢您的回复。我在service.xml文件中尝试了以下代码。我不知道它有多远: 我构建了服务,当我运行它时,它在数据库中创建了一个字段,作为uploadimage的longblob列。但它在产生的服务中给出了很多错误。 – 2013-03-20 04:41:48

+0

什么样的错误?请考虑更新您的问题。我假设你已经遵循了这样的一些教程:http://www.liferay.com/documentation/liferay-portal/6。1/development/-/ai/service-build-5 – Dani 2013-03-20 08:12:31

+0

我创建了一个Blob字段,就像您在上一个回复中建议的那样: 当我构建服务I获取BUILD SUCCESSFUL消息,但在blobuploadModelImpl类的com.test.blob.upload包中发生错误。 @Override public void resetOriginalValues(){ blobuploadModelImpl._pictureBlobModel = null; } 建议是 将pictureBlobModel修改为静态 当我将列的类型设置为Blob时,会出现此错误。 – 2013-03-20 08:25:16

相关问题