Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Dani F
Fotografias Usuario
October 22, 2012 4:21 AM
Answer

Dani F

Rank: New Member

Posts: 3

Join Date: April 19, 2011

Recent Posts

Hola

He visto que las imagenes de usuario se guardan en el servidor dentro de DATA/IMAGES usando una estructura de subdirectorios para nombrar la imagen.

asi por ejmplo en DATA/IMAGES/10/20 tengo la imagen 1020XX

He probado ha incluir a pelo en la BBDD nuevos valores(despues de alohar las imagenes en su respectivo lugar), y asignar el campo portraitId el codigo de imagen.

Funciona siempre y cuando respete la reglas de nombrar las imagenes como expongo arriba.

Hay algun metodo para hacer una carga y asociacion automatica de imagenes????

Me gustaria dejar todas las imagenes (con nombre=id usuario) en un mismo dir y asociarlas mediante un script de BBDD a la ficha de cada persona.

Saludos
Pavel Savinov
RE: Fotografias Usuario
October 27, 2012 1:34 AM
Answer

Pavel Savinov

Rank: Junior Member

Posts: 97

Join Date: September 24, 2012

Recent Posts

Hola Dani!

Se puede crear un hook para Liferay's UserService, por ejemplo en tal manera:

liferay-hook.xml:
 1<?xml version="1.0"?>
 2<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.1.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_1_0.dtd">
 3<hook>
 4    <service>
 5        <service-type>
 6            com.liferay.portal.service.UserService
 7        </service-type>
 8        <service-impl>
 9            ru.psavinov.liferay.test.UserServiceWrapper
10        </service-impl>
11    </service>
12</hook>


UserServiceWrapper.java:
 1package ru.psavinov.liferay.test;
 2
 3import java.io.File;
 4import java.io.FileOutputStream;
 5
 6import com.liferay.portal.kernel.exception.PortalException;
 7import com.liferay.portal.kernel.exception.SystemException;
 8import com.liferay.portal.model.User;
 9import com.liferay.portal.service.UserService;
10
11public class UserServiceWrapper extends
12        com.liferay.portal.service.UserServiceWrapper {
13   
14    public static final String CUSTOM_IMAGES_PATH = "c:/temp/images";
15    public static final String PORTRAIT = ".portrait";
16   
17    public UserServiceWrapper(UserService userService) {
18        super(userService);
19    }
20   
21    @Override
22    public User updatePortrait(long userId, byte[] bytes)
23            throws PortalException, SystemException {
24/*
25     Aquí se puede hacer todo lo que necesito con bytes de imagen,
26     por ejemplo, guardar en un mismo dir o algo más.
27*/
28        File newImageFile = new File(CUSTOM_IMAGES_PATH + File.separator +
29            String.valueOf(userId) + PORTRAIT);
30        try {
31            FileOutputStream writer = new FileOutputStream(newImageFile);
32            writer.write(bytes);
33            writer.close();
34        } catch (Exception e) {
35            throw new SystemException(e);
36        }
37        return super.updatePortrait(userId, bytes);
38    }
39
40}


Se puede crear Wrappers para todos los servicios que quieres.