Liferay - 使用 portlet 在 Web Content 下创建文件夹和子文件夹

Posted

技术标签:

【中文标题】Liferay - 使用 portlet 在 Web Content 下创建文件夹和子文件夹【英文标题】:Lifeary - Creating folders and sub folders under Web Content using portlet 【发布时间】:2022-01-02 18:12:39 【问题描述】:

我正在阅读 portlet 中的 excel 数据并将其放在 Web Content 下,并将它们分类到不同的文件夹和子文件夹中。

我发现的只是在 Documents and Media 库下创建文件和文件夹,而不是在 Web Content 下创建文件和文件夹

https://help.liferay.com/hc/en-us/articles/360029045451-Creating-Files-Folders-and-Shortcuts https://help.liferay.com/hc/en-us/articles/360028725672-Creating-Folders

按照以下步骤使用DLAppService 方法addFolder 创建文件夹:

获取对DLAppService的引用:

@Reference
private DLAppService _dlAppService;

获取填充addFolder 方法参数所需的数据。由于通常会使用最终用户提交的数据创建文件夹,因此您可以从请求中提取数据。此示例通过javax.portlet.ActionRequestParamUtil 执行此操作:

long repositoryId = ParamUtil.getLong(actionRequest, "repositoryId");
long parentFolderId = ParamUtil.getLong(actionRequest, "parentFolderId");
String name = ParamUtil.getString(actionRequest, "name");
String description = ParamUtil.getString(actionRequest, "description");

ServiceContext serviceContext = ServiceContextFactory.getInstance(
            DLFolder.class.getName(), actionRequest);

使用上一步中的数据调用服务引用的 addFolder 方法:

Folder folder = _dlAppService.addFolder(
                        repositoryId, parentFolderId, name, description, 
                        serviceContext);

请让我知道或指导我如何解决这个问题。

提前致谢。

【问题讨论】:

您想存储excel文件还是读取excel文件并使用数据创建网页内容? @DanieleBaggio, 读取excel文件并使用数据创建网页内容 【参考方案1】:

文档库中,您可以上传和存储文档

网页内容下,您可以创建和存储网页内容文章

听起来您想在 Web Content 下存储文档(例如 excel 文件),而构建这些文件夹的目的并非如此。请注意,这不是文件系统,而是组织不同类型内容的不同方式。

因此,解决此问题的方法是回到需求,并为底层业务问题找到可行的技术解决方案。

您通过带有DL 前缀的 API 创建的任何文件夹都将出现在文档库下。您通过 API 创建的任何以 Journal 前缀开头的文件夹都将显示在 Web 内容下。根本没有重叠。

【讨论】:

以上是关于Liferay - 使用 portlet 在 Web Content 下创建文件夹和子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Liferay 7 取消部署 portlet?

liferay5使用PortletURL进行跨portlet通信 liferay6.2

Liferay 7.3:如何预配置嵌入在页面片段中的 portlet?

liferay 7 中 liferay-portlet.xml 的等效文件是啥?

如何在 Liferay 7.0 中替换登录 portlet?

Liferay 7 portlet中所有能在@Component中修改的属性