2013-10-29 20 views
1

要求:將父文件夾,子文件夾及其文件從特定位置添加到文檔和庫中。如何在liferay中創建文檔和庫

案例1:如果文件夾已經存在,那麼獲得該ID,並添加文件

(在這裏我使用 addFileEntry(repositoryId, folderId,sourceFileName, mimeType, title, description, changeLog, is, size, serviceContext)DLAppServiceUtil類)。

案例2:如果文件夾是不是退出添加文件夾,然後添加文件

(在這裏我使用了添加文件夾 addFolder()方法DLAppServiceUtil類)

我的情況下,它提供了性能下降。那就是問題所在。

+0

這將有助於瞭解什麼會導致性能下降 - 以及一些您認爲是實際(慢)性能的測量:例如,創建文件夾和文檔需要多長時間。 –

回答

3

你正在使用哪個版本的Liferay?

目前的趨勢是按照6.1+(當然,當正確實施,但你可以用新的DLApp實現建立在這個或多或少):

  1. 找到父文件夾的ID。如果您沒有,請使用DLFolderConstancts中的默認值。
  2. 假設該文件夾存在並嘗試獲取它。
  3. 如果找不到,它會給你一個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()這種方式,一起來看看在門戶網站上。這不是微不足道的,但也不難以習慣。