【问题标题】:How to retrieve a user profile picture in Liferay如何在 Liferay 中检索用户个人资料图片
【发布时间】:2012-05-28 21:46:13
【问题描述】:

我想检索用户个人资料图片。我该怎么做?你能分享一个代码sn-p吗?我正在使用 Liferay 6.0.6。它只有 user.getPortraitId() 而没有 user.getPortraitURL()。因此,一旦我在 JAVA 类中获得了肖像 id,我该怎么处理它?

【问题讨论】:

    标签: liferay profile image liferay-6


    【解决方案1】:

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

    通过这种方法,您可以获得图片网址。

    如果需要图片对象,可以用ImageLocalServiceUtil加载:

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

    【讨论】:

    • 非常感谢 :) 但是我如何让 imagePath 使用 getPortraitURL() 实现?另外,一旦我得到图像对象,我该如何渲染它?
    • imagePath = themeDisplay.getPathImage();
    • 嗨,马克,如果我必须使用 themeDisplay 获取 imagePath,我必须能够首先在“JAVA 类”中获取 themeDisplay....我知道我们可以这样做: ThemeDisplay themeDisplay = ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);但是,“请求”代表什么?我没有使用动作类或 servlet 来使用“请求”
    • 你用什么?它是一个 portlet 吗?
    • 马克我按照你的建议使用了 ImageLocalServiceUtil 并且它有效......非常感谢:)
    【解决方案2】:

    在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 %>">
    

    第一种方法包含基于安全令牌的附加安全方面,您可能会或可能不会发现与您的需求相关。

    【讨论】:

    • ImageServletTokenUtil 在 Liferay 6.1 中被 WebServerServletTokenUtil 取代
    猜你喜欢
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2016-03-10
    相关资源
    最近更新 更多