Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2015, 10:09
Avatar de SirZoX
SirZoX
 
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
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