Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
imagecreatefromstring detiene el script

Hola buenas tardes,

Aquí vengo con un BUGS esta vez en PHP, que suerte todos los voy encontrando yo ...,
en particular se trata de un BUGS en la librería GD que lo que hace es elevar a error desconocido cualquier error que encuentra la propia librería y deteniendo totalmente el script que se esta ejecutando.

Aquí se comenta el BUGS que también tiene ya su tiempo
https://bugs.php.net/bug.php?id=70315

El problema en particular me afecta en PRESTASHOP que utiliza estas librerías para procesar las imágenes/miniaturas. Y en particular en el proceso de generación de miniaturas, donde siempre se detiene (debido al BUGS) en la misma imagen, sin llegar a finalizar ni a procesar el resto de las miniaturas que tiene la tienda, por lo que nunca avanza.

Intente solventarlo, antes de conocer que el problema es debido a este bug, creando un script alternativo que detecte y elimine las imágenes no validas para lo que cree una función que las chequea en el servidor para comprobar si son correctas, pero en cuanto llega a analizar la primera imagen con error en particular cuando llega al comando imagecreatefromstring() que es un comando de la librería GD el script se detiene y se acaba el proceso... no haciendo caso por mas que lo he intentado de los bloques try ... catch ... finally

Este es mi código:
Código PHP:
    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 
- ¿Alguien mas que haya tenido este problema?
- ¿Alguna otra alternativa o solución para determinar si una imagen es correcta o no en PHP?

Gracias por su tiempo y colaboración
saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Firebird se detiene en Ubuntu. subzero Firebird e Interbase 25 30-07-2014 21:49:39
Impresión directa al puerto COM se detiene en linea 30... krlosrp C++ Builder 5 28-08-2007 22:40:39
La policía detiene 15 personas ArdiIIa La Taberna 16 09-03-2007 21:56:54
Cuantos <Script></Script> deben haber en un <Body>? Deiv HTML, Javascript y otros 9 07-12-2006 01:27:50
El Motor Detiene Su Servicio DANY Firebird e Interbase 6 08-12-2003 17:48:03


La franja horaria es GMT +2. Ahora son las 20:40:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi