如何在liferay中创建文档和库

时间:2013-10-29 10:13:33

标签: liferay

要求:将父文件夹,子文件夹及其文件从特定位置添加到文档和库中。

案例1:如果文件夹已存在,则获取该ID并添加文件

(我在这里使用 addFileEntry(repositoryId, folderId,sourceFileName, mimeType, title, description, changeLog, is, size, serviceContext)类的DLAppServiceUtil

案例2:如果文件夹未退出,请添加文件夹,然后添加文件

(这里我用于添加文件夹 addFolder()类的DLAppServiceUtil方法

我的情况是它的性能很慢。那就是问题所在。

1 个答案:

答案 0 :(得分:3)

您使用的是哪个版本的Liferay?

当前的趋势是6.1+中的以下趋势(当正确实现时,但是您可以使用新的DLApp实现来或多或少地构建):

  1. 找到父文件夹ID。如果您没有,请使用DLFolderConstancts中的默认值。
  2. 假设该文件夹存在并尝试获取它。
  3. 如果找不到,它会给你NoSuch***Exception。如果是这种情况,请手动创建文件夹
  4. 你可以这样做:

    private Folder getOrCreateFolder(final ServiceContext serviceContext,
            final long userId, final Group group, String folderName)
            throws PortalException, SystemException {
        final long parentFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
        final long repositoryId = group.getGroupId();
    
        try {
            final Folder prev = DLAppLocalServiceUtil.getFolder(
                repositoryId, parentFolderId, folderName);
            return prev;
        } catch (final NoSuchFolderException e) {
            final Folder newFolder = DLAppLocalServiceUtil.addFolder(userId,
                repositoryId, parentFolderId, folderName,
                "My cool new folder", serviceContext);
            return newFolder;
        }
    }
    

    关于为什么以这种方式调用addFolder()的文档和内容绝对漏洞,请查看门户网站源代码。这不是那么微不足道,但也不是很难习惯。