要求:将父文件夹,子文件夹及其文件从特定位置添加到文档和库中。
案例1:如果文件夹已存在,则获取该ID并添加文件
(我在这里使用
addFileEntry(repositoryId, folderId,sourceFileName, mimeType, title, description, changeLog, is, size, serviceContext)
类的DLAppServiceUtil
。
案例2:如果文件夹未退出,请添加文件夹,然后添加文件
(这里我用于添加文件夹
addFolder()
类的DLAppServiceUtil
方法
我的情况是它的性能很慢。那就是问题所在。
答案 0 :(得分:3)
您使用的是哪个版本的Liferay?
当前的趋势是6.1+中的以下趋势(当正确实现时,但是您可以使用新的DLApp
实现来或多或少地构建):
DLFolderConstancts
中的默认值。NoSuch***Exception
。如果是这种情况,请手动创建文件夹你可以这样做:
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()
的文档和内容绝对漏洞,请查看门户网站源代码。这不是那么微不足道,但也不是很难习惯。