Foros del Web » Programando para Internet » PHP »

error al redimencionar imagenes de mas de 2 mb

Estas en el tema de error al redimencionar imagenes de mas de 2 mb en el foro de PHP en Foros del Web. Hola amigos, bueno este codigo funciona bien cuando redimenciona las imagenes, pero cuando son mayores a 2 mb no funciona y ya tengo tiempo intentando ...
  #1 (permalink)  
Antiguo 27/05/2010, 18:08
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 meses
Puntos: 0
error al redimencionar imagenes de mas de 2 mb

Hola amigos, bueno este codigo funciona bien cuando redimenciona las imagenes, pero cuando son mayores a 2 mb no funciona y ya tengo tiempo intentando y no logro realizarlo, se los dejo para ver cuales modificaciones son la mejor opcion. De antemano les doy las Gracias.

Código PHP:
Ver original
  1. <?
  2. //limite de memoria
  3. ini_set("memory_limit","50M");
  4. ini_set('post_max_size','10M');
  5. ini_set('upload_max_filesize','10M');
  6. ini_set('max_execution_time','1000');
  7. ini_set('max_input_time','1000');
  8.  
  9. //imagen original
  10. $imgOriginal = $_POST["var1"];
  11. //ruta de la imagen
  12. $ruta = "../../config/fotosTem/uploads/";
  13. //quitar espacios y sustituir
  14. //extencion y nombre del archivo
  15. $res = explode(".", $imgOriginal);
  16. $extension = $res[count($res)-1];
  17. $nombreArc = $res[count($res)-2];
  18. //remplazar espacios por
  19. $imgRemplazada = str_replace(" ", "_", $nombreArc);
  20. //cambiar nombre viejo por el nuevo
  21. rename($ruta.$imgOriginal,$ruta.$imgRemplazada.".".$extension);
  22. $imgNueva = $imgRemplazada.".".$extension;
  23. //Redimenciono la imagen si es mayor 800 o peso es mayor a 150k
  24. $tamano = filesize($ruta.$imgNueva);
  25. $datos1 = getimagesize($ruta.$imgNueva);
  26. //echo $datos1[0]." ".$tamano." ".$imgNueva;
  27. if($datos1[0] > 800 || $tamano > 152828){
  28.     //echo "<br/>entra";
  29.     $anchura=800;
  30.     $hmax=600;
  31.     $datos = getimagesize($ruta.$imgNueva);
  32.     if($datos[2]==1){$img = @imagecreatefromgif($ruta.$imgNueva); }
  33.     if($datos[2]==2){$img = @imagecreatefromjpeg($ruta.$imgNueva);}
  34.     if($datos[2]==3){$img = @imagecreatefrompng($ruta.$imgNueva); }
  35.     if($datos[2]>3){ die('Image format not supported'); echo "error img ".$imgNueva;}
  36.     $ratio = ($datos[0] / $anchura);
  37.     $altura = ($datos[1] / $ratio);
  38.     if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
  39.     $thumb = imagecreatetruecolor($anchura,$altura);
  40.     imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
  41.     if($datos[2]==1){imagegif($thumb, $ruta.$imgNueva);}
  42.     if($datos[2]==2){imagejpeg($thumb, $ruta.$imgNueva, 75);}
  43.     if($datos[2]==3){imagepng($thumb, $ruta.$imgNueva); }
  44. }
  45. ?>
  #2 (permalink)  
Antiguo 30/05/2010, 03:27
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: error al redimencionar imagenes de mas de 2 mb

Hola
Preguntas
1. con cualquier tipo de imagen ocurre lo mismo?
2. has intentado en otro equipo?
3. en el directorio temporal sube bien la de > 200 (se ve bien cuando se abre en editor de imagen)?
  #3 (permalink)  
Antiguo 31/05/2010, 11:34
 
Fecha de Ingreso: diciembre-2009
Ubicación: Monterrey
Mensajes: 61
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: error al redimencionar imagenes de mas de 2 mb

Hola mortiprogramador solo he probajo jpg, he intentado en varios equipos, cuando me las transforma en el editor se visualiza bien, que crees que pueda estar ocurriendo
  #4 (permalink)  
Antiguo 31/05/2010, 11:38
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: error al redimencionar imagenes de mas de 2 mb

después de colocar de este código:

Código PHP:
Ver original
  1. ini_set("memory_limit","50M");
  2. ini_set('post_max_size','10M');
  3. ini_set('upload_max_filesize','10M');
  4. ini_set('max_execution_time','1000');
  5. ini_set('max_input_time','1000');

coloca un phpfinfo();die;, es decir:

Código PHP:
Ver original
  1. ini_set("memory_limit","50M");
  2. ini_set('post_max_size','10M');
  3. ini_set('upload_max_filesize','10M');
  4. ini_set('max_execution_time','1000');
  5. ini_set('max_input_time','1000');
  6.  

esto para corroborar que se estén tomando los nuevos datos configurados con los ini_set, en la mayoría de los servidores este tipo de entradas son ignoradas si se configuran desde ini_set, se requiere que estén configuradas directamente en el php.ini
  #5 (permalink)  
Antiguo 31/05/2010, 11:43
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: error al redimencionar imagenes de mas de 2 mb

Me imagino que es porque aquí verificas que la imagen no sea mayor de 152828 bytes:


Código PHP:
Ver original
  1. $tamano = filesize($ruta.$imgNueva);
  2. if($datos1[0] > 800 || $tamano > 152828)
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #6 (permalink)  
Antiguo 31/05/2010, 11:53
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: error al redimencionar imagenes de mas de 2 mb

Hola

Cita:
Iniciado por juaniquillo Ver Mensaje
Me imagino que es porque aquí verificas que la imagen no sea mayor de 152828 bytes:


Código PHP:
Ver original
  1. $tamano = filesize($ruta.$imgNueva);
  2. if($datos1[0] > 800 || $tamano > 152828)
Que la imagen no sea mayor O que sea mayor??

jacoboDaniel78, dices que en el editor se ven bien,
incluso las de 2 mb o estas hablando solo de las
otras?

saludos
  #7 (permalink)  
Antiguo 31/05/2010, 11:55
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: error al redimencionar imagenes de mas de 2 mb

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola



Que la imagen no sea mayor O que sea mayor??

jacoboDaniel78, dices que en el editor se ven bien,
incluso las de 2 mb o estas hablando solo de las
otras?

saludos
mala mía, quise decir que sean mayor. ahora leí bien. El tiene problemas con las imágenes mayores de 2 megs. ¿Pero si es así por qué no tiene problema con las que son mejores?
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #8 (permalink)  
Antiguo 31/05/2010, 12:16
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: error al redimencionar imagenes de mas de 2 mb

Hola
Que versión de gd y php tienes?
  #9 (permalink)  
Antiguo 31/05/2010, 13:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: error al redimencionar imagenes de mas de 2 mb

Quiero hacer una observación en el código
Código PHP:
Ver original
  1. ini_set("memory_limit","50M"); //PHP_INI_ALL
  2. ini_set('post_max_size','10M'); //PHP_INI_PERDIR
  3. ini_set('upload_max_filesize','10M'); //PHP_INI_PERDIR
  4. ini_set('max_execution_time','1000'); //PHP_INI_ALL
  5. ini_set('max_input_time','1000'); //PHP_INI_PERDIR
Aquí conseguirás a lo que me refiero con PHP_INI_ALL y PHP_INI_PEDIR.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 31/05/2010, 16:28
 
Fecha de Ingreso: diciembre-2009
Ubicación: Monterrey
Mensajes: 61
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: error al redimencionar imagenes de mas de 2 mb

Hola mortiprogramador, Gracias nuevamente
version PHP 5.2.3 GD bundled 2.0.34 compatible,

RPV Gracias Tambien por tu comentario de echo lo voy a aplicar en el php.ini para ver si se logra solucionar.

Etiquetas: imagenes, mas, redimencionar
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 05:19.