我的文档库中有几个内容(图像,文档,视频...),我想以编程方式获取每个内容的下载URL,因此我可以在自定义portlet中的jsp上显示它们。
调查,我发现这个页面有一个可能的解决方案: https://www.liferay.com/community/forums/-/message_boards/message/11073293 但是我对它不满意,因为它意味着用几个参数手动构建url。
我想知道是否有更好的方法(“Liferay方式”)来做到这一点。
答案 0 :(得分:8)
我很害怕,但这就是生活方式: - )。
如果您仍需要更多确认,请查看source code方法的DLUtil#getPreviewURL
。
此方法已被liferay的Documents & Media portlet
和Document and Media display portlet
使用。您还可以检查JSP源代码,了解这些portlet如何使用上述方法/portal-web/docroot/html/portlet/document_library/action/download.jspf
。
<强> P.S:强>
您可以使用此static method将DLFileEntry
转换为FileEntry
。
答案 1 :(得分:6)
通过这些问题,我总是看到Liferay的消息来源。以下是在“文档和媒体库”portlet中构建文件下载URL的片段:
<liferay-ui:input-resource
url='<%= themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + fileEntry.getUuid() %>'
/>
但你是对的,我更喜欢像DLFile.getUrl()这样的方法。