【问题标题】:Uploading images to liferay theme from a portlet从 portlet 将图像上传到 liferay 主题
【发布时间】:2015-09-10 17:10:35
【问题描述】:

我有 Liferay Spring Maven portlet 和一个 liferay 主题。现在用户将通过 portlet 上传图像。我们如何将它放在 /webapps/theme/images 中?任何内置的 Liferay 功能/API 可以帮助我们将上传的图像放入主题中?

【问题讨论】:

  • 我永远不会更改文件 in 的主题。如果您的主题位于 WAR file 中怎么办?缓存怎么样(通常图像形成一个缓存在浏览器中的 WAR)?安全呢?您可以改为将图像上传到“文档和媒体”中,并将该图像包含在主题中 - 这将更容易实现......
  • @Tobian 我放弃了将图片上传到主题的想法,因为下次我们发布相同的新版本时,上传的数据会丢失。相反,我会将图像上传到文件系统上的目录并从那里读取。
  • Veeru A S,根据您的问题,我的回答已满足您的要求。如果它满足您的要求,您应该接受答案,以便相信它对他人也有帮助。

标签: java spring liferay liferay-theme


【解决方案1】:

文件上传功能可以参考: How to upload file in relative directory

对于主题图片文件夹的动态路径,可以通过ThemeDisplay对象获取,如下:

行动:

ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);    
String themeImagePath = themeDisplay.getPortalURL() + themeDisplay.getPathImage();

其中request 可以是renderRequest 或actionRequest。

JSP:

<liferay-theme:defineObjects />

String themeImagePath = themeDisplay.getPortalURL() + themeDisplay.getPathImage();

其他比较常用的选项有themeDisplay().getPathThemeCss()、themeDisplay().getPathJavaScript()或themeDisplay().getPathMain();

【讨论】:

  • @Kumar,我们首先如何上传?
  • 你可以做 File folder = new File(themeImagePath);像这样。
  • 我放弃了将图片上传到主题的想法,因为下次我们发布相同的新版本时,上传的数据会丢失。相反,我会将图像上传到文件系统上的目录并从那里读取。感谢您的回复库马尔
  • 我对“如何在相对目录中上传文件”的回答揭示了如何将图像上传到本地目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多