【问题标题】:Liferay 6.1 DLApp* API: How to get images?Liferay 6.1 DLApp* API:如何获取图像?
【发布时间】:2014-02-22 16:33:05
【问题描述】:

我正在将使用 IGImageService 的代码从 liferay 门户 6.0 迁移到 6.1。

我从这个blog post 了解到,有一个名为DLAppService 的新API,建议我使用它。

我的用例如下:我们正在使用博客 porlet 的自定义版本,并使用 IGImage.getLargeImageId() 等来显示来自博客帖子的不同大小版本的图像。我的问题:

如何使用新的(是的,有点)DLAppService 像以前一样检索图像对象,并访问我在 LR 6.0 中习惯的接口方法?

我还看到DLFileEntry,它扩展了旧的IGImage 接口(在#getLargeImageId() 的情况下)。但我看不出有办法从DLAppService 中得到DLFileEntry

有什么建议吗?

【问题讨论】:

    标签: liferay liferay-6


    【解决方案1】:

    Here's a minor example 如何使用文件夹使用DLAppService。您可以通过调用DLAppLocalServiceUtil.getFileEntry()(也处理NoSuchFileEntryException)来执行相同的操作,如果没有先前版本的图像,则调用DLAppLocalServiceUtil.addFileEntry()

    您可以通过此网址访问图片:

    "/image/image_gallery?uuid=" + image.getUuid() +
        "&groupId=" + serviceContext.getScopeGroupId() +
        "&t=" + System.currentTimeMillis()
    

    希望能有所帮助。

    【讨论】:

    • 你知道如何从 com.liferay.portal.kernel.repository.model.FileEntry 获取 getLargeImageId 吗?这是我使用您建议的方法得到的结果..?
    • 您需要 Image 对象本身吗? ImageLocalServiceUtil.getImage(image.getLargeImageId()) 怎么样?
    • 我真的不明白我是如何从DLAppLocalServiceUtil 获得任何类型的图像的。例如,使用DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId 会给我com.liferay.portal.kernel.repository.model.FileEntry。从那里到com.liferay.portlet.documentlibrary.model.DLFileEntry - 正确的方法是什么?
    • @jhohlfeld 你有没有按照我之前的建议尝试过ImageLocalServiceUtil
    • 对不起,是的,我做到了。它缺少#getImageByUuidAndGroupId() 方法。我想这真的不能替代以前的 6.0 IGImageLocalServiceUtil。也许值得在 Liferay 博客中提出一个问题...
    【解决方案2】:

    将代码迁移到upversion的最好方法是阅读新版本的源代码))见liferay-portal-src-6.1...\portal-web\docroot\html\portlet\blogs\view_entry_content.jsp 你找到了解决方案。

    【讨论】:

    • 是的,是的。但是我们并没有真正使用博客工具来获取图像,而是由于历史和其他原因,我们有自己的“BlogsUtil”实现。我对 Liferay API 也不是很深入,可能需要一个 1:1 的代码示例。请仔细阅读我的问题,因为我努力非常具体地描述了需求。但是,如果有什么不清楚的地方,请随时追问!
    猜你喜欢
    • 2014-07-07
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2019-02-09
    • 1970-01-01
    • 2015-07-10
    相关资源
    最近更新 更多