Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2012, 06:32
miwelillo
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 10 meses
Puntos: 11
Problemas mostrando imagen desde directorio privado

Hola a todos,

He creado un action en mi aplicacion para mostrar las imagenes que yo quiero en funcion del usuario que esta logeado.

Este action sencillamente comprueba que el usuario este logeado y en caso afirmativo coge de la BDD la ruta a la imagen que se le pasa por parametro.

El codigo para mostrar la imagen es el siguiente:

Código PHP:
$visible $this->_fotos->esVisible($foto);
        
        if(
$visible != false){   
            
$file $this->_fotos->muestraFoto($visible);
            
$bits file_get_contents('C:\wamp\www\retratodemibebe\application\data\uploads\pics\prueba8_gmail\13555731350.jpg');
            
$this->_response->setHeader('Content-Type'$visible['tipo']);
            
$this->_response->setBody($bits);             
        }
        else{
            exit();
        } 
El metodo visible() sencillamente devuelve un array con el nombre de la imagen, directorio en el que está alojada y tipo MIME.

Esta funcion hasta hace un momento funcionaba estupendamente, pero de un momento a otro ha dejado de funcionar sin explicacion aparente. En lugar de mostrar la imagen muestra el tipico icono de cuando no se puede obtener una imagen. Es algo inexplicable por que como he dicho, funcionaba correctamente y si hago un var_dump($bits) me sale una tira de bytes indicando que la imagen la ha leido correctamente.

Ejemplo:

Tengo la imagen en el directorio C:\wamp\www\retratodemibebe\application\data\uploa ds\pics\prueba8_gmail\13555731350.jpg

Bien, hago lo siguiente:

Código PHP:
if($visible != false){   
            
$file $this->_fotos->muestraFoto($visible);
            
var_dump($visible);
            
var_dump($file);
            
$bits file_get_contents($file);
            
var_dump($bits);
        }
        else{
            exit();
        } 
y el resultado es

Código PHP:
array (size=3)
  
'directorio' => string 'prueba8_gmail' (length=13)
  
'nombre' => string '13555731350.jpg' (length=15)
  
'tipo' => string 'image/jpg' (length=9)

string 'C:\wamp\www\retratodemibebe\application\data\uploads\pics\prueba8_gmail\13555731350.jpg' (length=87)

string '�����Adobe�d������1jExif��MM�*����    �����������
�����������������(�������2��������i���������������J���� ���z��f������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'
... (length=4473867
COmo veis, la imagen la esta leyendo pero no me la muestra por pantalla cuando antes si que lo hacia

Alguien sabría decirme que está pasando?

Gracias y un saludo