Foros del Web » Programando para Internet » PHP »

Falla el imagecreatefromjpeg pero no veo el mensaje de error

Estas en el tema de Falla el imagecreatefromjpeg pero no veo el mensaje de error en el foro de PHP en Foros del Web. Hola chicos. Después de 5 horas de pelea con esto, y no llegar a nada por ir dando palos de ciego.. os pregunto lo siguiente: ...
  #1 (permalink)  
Antiguo 11/03/2015, 10:09
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años, 6 meses
Puntos: 2
Falla el imagecreatefromjpeg pero no veo el mensaje de error

Hola chicos.

Después de 5 horas de pelea con esto, y no llegar a nada por ir dando palos de ciego.. os pregunto lo siguiente:

Tengo el archivo 'galeria.php', con un formulario que sube imágenes. Este formulario sube la imagen correctamente al servidor, esto no es problema.

El siguiente paso es que tengo una clase php para redimensionar, la clase (para evitar spam) podeis encontrarla en la web de un tal Paulund.

La coña es que cuando tira a hacer el imagecreatefromjpeg, peta, siempre con archivos jpg.
Después de leer mil post en mil sitios encontré que podía ser cosa de la memoria, con el ini_set la he aumentado a 128M (sabiendo que según photoshop, la img que trato de subir son 51mb), y siendo el tamaño del archivo jpg comprimido de 7 megas. No hay ningún control de tamaño de archivo que limite la subida, vamos, que el archivo se sube siempre y está comprobado.

El formulario manda a través de ajax la orden de subir al archivo upload.php. Y en este archivo después de hacer el upload cargo la clase php para redimensionar, y falla seguro en el imagecreatefromjpeg. Hay algún modo de que el supuesto error que se imprime en pantalla (en el archivo upload.php, que no está visible evidentemente) llegue a mi conocimiento de alguna manera?

He probado incluso a poner un mail () para que me llegue algo de info, pero nanai.

Como digo.. hasta esta línea sé que funciona porque el archivo se sube al ftp.
Código PHP:
Ver original
  1. if(move_uploaded_file($_FILES['upl']['tmp_name'],$fileDestino)){

Luego he metido las opciones del ini_set
Código PHP:
Ver original
  1. ini_set('memory_limit', '128M');
  2.         ini_set('display_errors', 1); // set to 0 when not debugging
  3.         error_reporting(E_ALL);

Y finalmente (con la clase ya cargada previamente) tengo las instrucciones que hacen la redimensión:
$abs lleva lo mismo que $fileDestino, la misma ruta relativa.
Código PHP:
Ver original
  1. $imagen = new ResizeImage($abs);
  2.         $imagen->resizeTo(100,100,'maxHeight');
  3.         $imagen->saveImage($abs);

El código de la clase es el siguiente:
$filename recibe la ruta relativa correctamente, está comprobado.
Código PHP:
Ver original
  1. $size = getimagesize($filename);
  2.         $this->ext = $size['mime'];
  3.  
  4.         switch($this->ext)
  5.         {
  6.             // Image is a JPG
  7.             case 'image/jpg':
  8.             case 'image/jpeg':
  9.                 // create a jpeg extension
  10.                 mail("xxxxxxx@xxxx","antes del imagecreatefromjpeg","$filename");
  11.                 $this->image = imagecreatefromjpeg($filename);
  12.  
  13.          .....

Última edición por SirZoX; 11/03/2015 a las 10:16
  #2 (permalink)  
Antiguo 11/03/2015, 10:41
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Falla el imagecreatefromjpeg pero no veo el mensaje de error

Mejor intenta http://image.intervention.io/ esta ampliamente probada.
Adicional verifica que tengas habilitadas las extensiones gd o ImageMagick. También si puedes, publica la parte de código que involucra el problema, también recuerda que si estas usando una clase siempre es buena idea capturara sus excepciones mediante try/catch: http://php.net/manual/en/language.exceptions.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 11/03/2015, 10:59
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años, 6 meses
Puntos: 2
Respuesta: Falla el imagecreatefromjpeg pero no veo el mensaje de error

Hola hhs.

Las extensiones imagick y gd están instaladas, es lo primerito que comprobé, aunque sabía que tenían que estar instaladas a la fuerza puesto que hasta hace dos semanas este script estaba funcionando sin problema con archivois jpg.

Por otro lado, el tema de Intervention Image voy a echarle un ojo, aunque creo que lo miré hace no mucho tiempo y finalmente opté por otras clases, no sé porqué... ahora lo miraré.

El código que da el error lo he posteado, es la linea del imagecreatefromjpeg. Todo lo que se ejecuta previo a eso está funcionando correctamente, y también lo he posteado.

El tema del try/catch lo conozco, pero la coña es que la accion de redimensionar no se ejecuta en la misma página donde se ejecuta el resto del código, sino que se ejecuta desde upload.php, que recibe la informacion a través de ajax desde galería.php, de modo que no entiendo muy bien de qué manera puedo ver en galería.php el error que provoca una clase llamada desde upload.php :/
  #4 (permalink)  
Antiguo 11/03/2015, 16:07
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Falla el imagecreatefromjpeg pero no veo el mensaje de error

Cita:
Las extensiones imagick y gd están instaladas, es lo primerito que comprobé, aunque sabía que tenían que estar instaladas a la fuerza puesto que hasta hace dos semanas este script estaba funcionando sin problema con archivois jpg.
Ya revisaste que versión de php estas usando ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 12/03/2015, 03:38
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años, 6 meses
Puntos: 2
Respuesta: Falla el imagecreatefromjpeg pero no veo el mensaje de error

Sí, la 5.5

En cuando a Intervention image... he estado un rato leyendo en su web, y la verdad es que no acierto a averiguar como "instalarlo" para poder utilizarlo.

Leo que debería tener instalado yo en mi pc el composer, pero ando algo perdido en ese sentido porque no entiendo la necesidad de instalar en local una aplicacion... ni sé exactamente cual es la función de composer.
  #6 (permalink)  
Antiguo 12/03/2015, 12:40
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Falla el imagecreatefromjpeg pero no veo el mensaje de error

Es muy raro. lo que te puedo aconsejar es que hagas pruebas aisladas de la clase con diferentes condiciones para ver el comportamiento.
Composer es una administrador de dependencias y su documentación es muy clara https://getcomposer.org/doc/00-intro.md.
Si es mucho problema para ti usarlo, simplemente olvida el tema y realiza las pruebas con la clase que conoces.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 12/03/2015, 14:10
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Falla el imagecreatefromjpeg pero no veo el mensaje de error

Un archivo jpg de 7 mb puede requerir más de 128mb de memoria para redimensionarlo.

Por otra parte, yo tuve un problema similar hace tiempo sólo con imágenes .jpg, intenta crear una imagen .jp de la nada (toma cualquier ejemplo del manual de php) y mira si se crea el archivo. En mi caso, los administradores del host tuvieron que reinstalar el gd y sus librerías. Mientras esto pasaba, solucioné el problema con imagemagik

Etiquetas: clase
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 21:42.