Cómo recuperar una foto de perfil de usuario en Liferay

Quiero recuperar una imagen de perfil de usuario. ¿Cómo lo hago? ¿Podría compartir un fragmento de código? Estoy usando Liferay 6.0.6. Solo tiene user.getPortraitId() y no user.getPortraitURL(). Entonces, una vez que obtenga la identificación del retrato dentro de una clase JAVA, ¿qué hago con ella?

preguntado el 22 de mayo de 12 a las 12:05

2 Respuestas

Ver la implementación de UserConstants.getPortraitURL(...) https://github.com/liferay/liferay-portal/blob/master/portal-service/src/com/liferay/portal/model/UserConstants.java

En este enfoque, puede obtener la URL de la imagen.

Si necesita el objeto de imagen, puede cargarlo con ImageLocalServiceUtil:

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

contestado el 22 de mayo de 12 a las 16:05

Muchas gracias :) Pero, ¿cómo consigo que imagePath use la implementación getPortraitURL()? Además, una vez que obtengo el objeto de imagen, ¿cómo lo renderizo? - usuario988090

imagePath = themeDisplay.getPathImage(); - Mark

Hola Mark, si tengo que obtener imagePath usando themeDisplay, primero tendría que poder obtener themeDisplay dentro de una "clase JAVA"... Sé que podríamos hacerlo de la siguiente manera: ThemeDisplay themeDisplay = ThemeDisplay)request.getAttribute (WebKeys.THEME_DISPLAY); Pero, ¿qué significa 'solicitud'? No estoy usando una clase de acción o un servlet para usar la "solicitud" - usuario988090

¿Y tú qué usas? ¿Es un portlet? - Mark

Mark, usé ImageLocalServiceUtil como sugirió y funcionó ... Muchas gracias :) - user988090

Hay al menos dos opciones para renderizar retratos en 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 %>">

El primer enfoque contiene un aspecto de seguridad adicional basado en token de seguridad que puede o no encontrar relevante para sus necesidades.

contestado el 22 de mayo de 12 a las 21:05

ImageServletTokenUtil fue reemplazado por WebServerServletTokenUtil a partir de Liferay 6.1 - Lucas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.