move_uploaded_file form example php image image-processing file-upload upload

form - el temido "Advertencia: imagecreatefromjpeg(): ''/ tmp/filename'' no es un archivo JPEG válido en/phpfile.php en línea xxx"



upload image form html (3)

He recibido esta advertencia cuando algunas personas suben imágenes a nuestro sitio:

Advertencia: imagecreatefromjpeg () [function.imagecreatefromjpeg]: gd-jpeg: la biblioteca JPEG informa un error irrecuperable: en /home/pathremoved/includes/snapsutils.php en la línea 220

Advertencia: imagecreatefromjpeg () [function.imagecreatefromjpeg]: ''/ tmp / phpiw4MFk'' no es un archivo JPEG válido en /home/pathremoved.php en la línea 220

Advertencia: imagesx (): el argumento proporcionado no es un recurso de Imagen válido en /home/pathremoved.php en la línea 222

Advertencia: imagesy (): el argumento proporcionado no es un recurso de Imagen válido en /home/pathremoved.php en la línea 223

Advertencia: imagecreatetruecolor () [function.imagecreatetruecolor]: Dimensiones de imagen no válidas en /home/pathremoved.php en la línea 240

Advertencia: imagecopyresampled (): el argumento proporcionado no es un recurso válido de Image en /home/pathremoved.php en la línea 242

Esto solo ocurre con ciertas imágenes, que cuando se abren en cualquier programa están bien, incluso se carga a la versión del sitio que tengo en localhost sin problemas ... Busqué en Google un poco pero no encontré nada concluyente ...

nota php upload_max size es 5M y post_max_size es 5M. Esto no es un problema de carga o memoria. He probado con imágenes 4M sin problemas.

cualquier ayuda apreciada.


Después de investigar un poco en Google, encontré este informe de errores . Parece que la biblioteca GD es menos tolerante con los archivos JPEG con errores que otros programas. La solución sugerida era establecer GD para ignorar los errores JPEG antes de procesar la imagen, así:

ini_set("gd.jpeg_ignore_warning", 1);

Espero que eso funcione para ti. Otro problema potencial con el que se puede encontrar es con la memoria. Parece que GD mantiene todas las imágenes en la memoria como bitmaps una vez que se han abierto. Esto significa que una imagen de 5 MB puede consumir más memoria de la que permite un solo subproceso PHP, lo que da como resultado un error fatal. Tuve este problema con algunas cargas de imágenes y tuve que reducir el tamaño máximo de archivo que permití solucionar el problema.

Buena suerte y esperanza que ayude.


Esta imagen causa una solicitud interminable al servidor en Firefox (3.6.10). Firefox dice que contiene errores.


También me enfrento al mismo problema.

usamos el código a continuación para solucionar este problema y funciona para mí,

... $image = @ImageCreateFromJpeg($image_name); if (!$image) { $image= imagecreatefromstring(file_get_contents($image_name)); } ...

Espero que esto te ayude...:)