Foros del Web » Programando para Internet » PHP »

Problemas con la función imagecreatefromjpeg()

Estas en el tema de Problemas con la función imagecreatefromjpeg() en el foro de PHP en Foros del Web. Hola, mi problema con esta funcion sucede cuando a una imagen PNG le cambio la extension a JPG (manualmente) y la subo (en local) para ...
  #1 (permalink)  
Antiguo 30/09/2012, 19:18
Avatar de iBioHacker  
Fecha de Ingreso: diciembre-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 1
Información Problemas con la función imagecreatefromjpeg()

Hola, mi problema con esta funcion sucede cuando a una imagen PNG le cambio la extension a JPG (manualmente) y la subo (en local) para generar un thumbnail. La función no me arroja error de algun tipo.

En Firefox me sale: La conexión ha sido reiniciada La conexión al servidor fue reiniciada mientras la página se cargaba.

En internet explorer: Internet Explorer no puede mostrar la página web Puede intentar lo siguiente...

Asi comienzo a crear el objeto para manipular la imagen
Código PHP:
if($ext==='jpeg' || $ext==='jpg'){
$imagen=imagecreatefromjpeg($foto_ruta);
                                
}else if(
$ext==='png'){
$imagen=imagecreatefrompng($foto_ruta);

No entiendo por que falla, el codigo completo realizaria lo siguiente:
1. Subo la imagen y creo la ruta
[La sube correctamente y obtengo la ruta]


2.Valido el mime type del archivo. Lo que no me gusta de $_FILES[$archivo]['type'] es que si tomo un "*.EXE" y lo renombro como "*.JPG", la mugre funcion me dice que en efecto es JPG , cuando lo abro con el block de notas puedo ver claramente el MIME al inicio del archivo y claramente es un EXE
[AUN ASI "VALIDA" EL MIME TYPE ]

3. Creo el objeto
4. Creo el contenedor
5. Creo el thumbnail
6. Guardo la imagen

Nada del otro mundo funciona correctamente con cualquier imagen, pero si me atrevo a renombrar cualquier archivo y hacerlo pasar como imagen es cuando NO PUEDO GESTIONAR EL FALLLO ya ni con: if(!imagen){}, por que ni la pantalla en blanco me sale, solo me dice fallo conexion y ya.

Alguien puede decir que puede ser.

Código PHP:
ini_set('memory_limit','100M');
if(
move_uploaded_file($_FILES['foto']['tmp_name'],$foto_ruta)){
    
$x=$_POST['x'];
    
$y=$_POST['y'];
    
$w=$_POST['w'];
    
$h=$_POST['h'];

    
$width=$height=100;
    
$quality=99;

       
#Crear imagen
    
if($ext==='jpeg' || $ext==='jpg'){
        
$imagen=imagecreatefromjpeg($foto_ruta)or die('error jpg');
                                
    }else if(
$ext==='png'){
        
$imagen=imagecreatefrompng($foto_ruta)or die('error png');
    }
                            
    if(!
$imagen){
              
$_SESSION['MENSAJE']=Response('warning','Error: La imagen es un tipo no válido');
        echo 
'FALLO';
    }
    
#Genera un contenedor de un ancho y alto especifico
    
if(function_exists("imagecreatetruecolor")){
        
$thumb=imagecreatetruecolor($width,$height);

    }else{
        
$thumb=imagecreate($w,$h);
    }

                            
imagecopyresampled($thumb,$imagen,0,0,$x,$y,$width,$height,$w,$h);
    
$ruta_thumbnail=($directorio.'/'.$folder.'/'.'Perfil_thumbnail.jpg');
                            
    
imagejpeg($thumb,$ruta_thumbnail,$quality);
    
imagedestroy($imagen);
                            
            

                        
            
}else{
    
$_SESSION['MENSAJE']=Response('warning','La imagen no pudo ser subida al servidor');
                            

  #2 (permalink)  
Antiguo 30/09/2012, 23:30
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: Problemas con la función imagecreatefromjpeg()

imagecreatefrom*() sólo crea un recurso para manipular la imagen y, según tengo entendido, devolverá falso sólo si no se tiene acceso al archivo; deberías usar getimagesize() para verificar si se trata de una imágen válida.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/10/2012, 16:17
Avatar de iBioHacker  
Fecha de Ingreso: diciembre-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 1
Sonrisa Respuesta: Problemas con la función imagecreatefromjpeg()

Es verdad, esa función tambien regresa el MIME-TYPE del archivo, gracias .. Ya de esta forma puedo crear mi thumbnail, Saludos!

Etiquetas: $_files, imagecreatefromjpeg()
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:06.