Ver Mensaje Individual
  #5  
Antiguo 06-09-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
Hola a todos,

Supongo que sí... pero... ¿estás mostrando los posibles errores de PHP? Esto es, al comienzo del script, prueba a añadir las siguientes líneas de código:

Código PHP:

error_reporting
(E_ALL);

ini_set('display_errors'1); 
David gracias por responder!!!

Si, esta activo el modo de depuración. De echo la librería GD devuelve exactamente el error que encuentra. El error en particular es:

Código:
Fatal error: imagecreatefromstring(): gd-jpeg: JPEG library reports unrecoverable error: Bogus marker length in itest.php on line 53
El error es correcto es de la propia imagen por estar corrupta (parece ser que el tamaño de los datos contenidos en la imagen es distinto al definido por las dimensiones de la imagen). Y ese mismo error también lo obtengo al intentar leer esa imagen con cualquier programa externo de imagenes en windows.
El problema es de la libreria GD y de PHP que detiene la ejecución ...

Este es mi código completo que utilizo para hacer la prueba de comprobación y en donde ya se da el fallo:
Código PHP:
<?php
  
// https://bugs.php.net/bug.php?id=73986
  
  
error_reporting(E_ALL);  
  
ini_set('display_errors'1);
  
ini_set('display_startup_errors'1);
  
  
ini_set ('gd.jpeg_ignore_warning'1);
  
  
register_shutdown_function('fatalErrorShutdownHandler');
    
    function 
fatalErrorShutdownHandler() {
        
        global 
$filename;
        
        
$last_error error_get_last();
        if (
$last_error['type'] === E_ERROR && ($filename != '') ) {
            echo 
"<BR/>\r\r(" __LINE__ ") ERROR: {$filename}. Ejecución detenida."
        }
    }
    
    function 
GetImageInfo($filename, &$errorMsg) {
        
        
/* Abrimos el archivo según su contenido */
        
$result false;
        try {
            
$finfo finfo_open(FILEINFO_MIME_TYPE);
            
$result finfo_file($finfo$filename);
        } catch (
Exception $e) {
            
$errorMsg .= $e->getMessage();              
        } 
finally {
            
finfo_close($finfo);        
        }         
        return 
$result;
    }
    
    function 
checkImage($filename, &$errorMsg) {
      
        
$result false;
        
$errorMsg '';
        try {    
            
$image false;    
            if (
$filename == "") {
                
$errorMsg .= "El nombre de fichero esta vacio";                                        
            } elseif ( !
file_exists($filename) ) {
                
$errorMsg .= "La ruta del fichero no es correcta";                                                    
            } elseif ( !
$infoFile GetImageInfo($filename$errorMsg) ) {
                
$errorMsg .= "{$filename}: No se ha podido obtener informacion del fichero";                            
            }elseif (( 
$infoFile != 'image/jpeg' ) && ( $infoFile != 'image/png' )) {
                
$errorMsg .= "{$filename}: Formato de imagen no soportado";            
            } elseif (!
$image_data file_get_contents($filename)) {
                
$errorMsg .= "{$filename}: Contenido no disponible";                        
            } elseif(!
$image imagecreatefromstring($image_data)) {
                
$errorMsg .= error_get_last()['message'];                  
            } else {
                unset(
$image);
                
$result true;
            } 
// if        
        
} catch (Exception $e) {
            
$errorMsg .= $e->getMessage();              
        } 
finally {        
            return 
$result;                    
        }  
    } 
// function

  
$errorMsg ''
  
$filename '3612272.jpg';      
  if ( !
checkImage($filename$errorMsg) ) {
    echo 
"<BR/>\r\r(" __LINE__ ") ERROR: {$filename} {$errorMsg}";
  } else {
    echo 
"{$filename} OK";
  }
?>
y dejo enlace a la imagen corrupta por si alguien quiere hacer pruebas en su propio equipo
Imágenes Adjuntas
Tipo de Archivo: jpg 3612272.jpg (10,5 KB, 3 visitas)
Responder Con Cita