FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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:
- ¿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 |
#2
|
||||
|
||||
Me parece muy raro que un error tan antiguo (2.015) no haya sido corregido todavía, y menos en una biblioteca tan usada como esta.
De todas formas, ¿seguro que para el programa sin más? ¿Estás ejecutando con todas las opciones de depuración activadas para que te muestre toda la información posible? [edit] ¿Qué versión de PHP estás usando? Porque dice que el error está arreglado y sólo afecta a un par de versiones viejas. Última edición por Ñuño Martínez fecha: 05-09-2019 a las 12:37:27. |
#3
|
|||
|
|||
Cita:
La versión de PHP de mi servidor es la 5.6.32 de fecha 26/10/2017, es verdad que no es la ultima, pero se supone que dicho BUGS esta ya solventado en esa versión, pues según la documentación se aplico a partir de la versión 5.6.25 de fecha 18/08/2016. De todas formas ya he abierto tickets para que actualicen la versión del hosting. En cualquier caso ejecuto con todas las opciones de depuración, y se sigue deteniendo. La solución que he aplicado momentáneamente es capturar cuando finaliza el script y analizar si se ha producido una excepción de tipo E_ERROR y en tal caso borrar el fichero. Este es el método: Código PHP:
|
#4
|
||||
|
||||
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:
|
#5
|
|||
|
|||
Cita:
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 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:
|
#6
|
||||
|
||||
Hola a todos,
¿Se detiene la ejecución incluso con el "try...catch"? Sea como sea... claro, lo primero que se le ocurre a uno es, ¿por qué no se usa una imagen "incorrupta"? ¿Es obligatorio usar esa imagen? Pero siempre podría convertirse, ¿no? ... porque el error pinta malamente así a bote pronto... |
#7
|
|||
|
|||
Cita:
Cita:
Hasta ahora con la medio solución de register_shutdown_function(); he conseguido a base de ejecutar muchas veces el script, ir eliminando de una en una cada imagen problemática. Pero esta solución es como matar moscas a cañonazos... Pues parece que si... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Firebird se detiene en Ubuntu. | subzero | Firebird e Interbase | 25 | 30-07-2014 22:49:39 |
Impresión directa al puerto COM se detiene en linea 30... | krlosrp | C++ Builder | 5 | 28-08-2007 23:40:39 |
La policía detiene 15 personas | ArdiIIa | La Taberna | 16 | 09-03-2007 22:56:54 |
Cuantos <Script></Script> deben haber en un <Body>? | Deiv | HTML, Javascript y otros | 9 | 07-12-2006 02:27:50 |
El Motor Detiene Su Servicio | DANY | Firebird e Interbase | 6 | 08-12-2003 18:48:03 |
|