2012-05-22 117 views
4

我想檢索用戶個人資料圖片。我該怎麼做?你能分享一段代碼嗎?我使用Liferay 6.0.6。它只有user.getPortraitId()並且沒有user.getPortraitURL()。所以一旦我在JAVA類中獲得了肖像ID,我該怎麼處理它呢?如何在Liferay中檢索用戶個人資料圖片

回答

3

UserConstants.getPortraitURL(...) https://github.com/liferay/liferay-portal/blob/master/portal-service/src/com/liferay/portal/model/UserConstants.java

實施這種方法,你可以得到圖像的URL。

如果你需要的圖像對象,你可以用ImageLocalServiceUtil加載:

 long portraitId = user.getPortraitId(); 
     Image image = ImageLocalServiceUtil.getImage(portraitId); 
+0

感謝噸標記:)但我如何獲得imagePath使用getPortraitURL()實現?另外,一旦我得到圖像對象,我該如何渲染它? – ronn

+0

imagePath = themeDisplay.getPathImage(); – Mark

+0

嗨馬克,如果我必須得到使用themeDisplay的imagePath,我必須能夠首先在「JAVA類」中獲得themeDisplay ....我知道我們可以這樣做:ThemeDisplay themeDisplay = ThemeDisplay)請求。的getAttribute(WebKeys.THEME_DISPLAY);但是,'請求'代表什麼?我沒有使用動作類或servlet來使用「請求」 – ronn

1

有在JSP渲染肖像至少有兩個選項:

<img src="<%= themeDisplay.getPathImage()%> 
    /image_gallery?img_id=<%= image.getImageId()%>&t= 
    <%= ImageServletTokenUtil.getToken(image.getImageId())%>"> 

<img src="<%= themeDisplay.getPathImage() %>/user_portrait?img_id=<%=id %>"> 

第一種方法中包含額外的安全性方面基於安全令牌,您可能會或可能不會發現與您的需求相關。

+1

'Liferay 6.1版本中'ImageServletTokenUtil'被替換爲'WebServerServletTokenUtil' – Lucas

相關問題