Foros del Web » Programando para Internet » PHP »

problema con un upload de foto...

Estas en el tema de problema con un upload de foto... en el foro de PHP en Foros del Web. Hola a todos... Tengo un problema al subir fotos y pretender reducir su peso y tamaño. Uso un codigo de php q anda de mil ...
  #1 (permalink)  
Antiguo 14/03/2011, 15:20
 
Fecha de Ingreso: noviembre-2008
Mensajes: 103
Antigüedad: 16 años
Puntos: 0
problema con un upload de foto...

Hola a todos... Tengo un problema al subir fotos y pretender reducir su peso y tamaño.

Uso un codigo de php q anda de mil maravillas salvo ycuando la imagen pese pese menos de 3mb o tenga un ancho y o alto inferior a 3000 px.

Si excedo esto saltra el siguiente error:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 3264 bytes) in C:\xampp\htdocs\info_lh\carga_anuncio.php on line 52

Pasa en varios servidores q no dejan modificar la memoria en php.ini

Hay alguna forma de achicar las fotos sea cual sea su tamaño o hay alguina forma de saber el alto el ancho del archivo q trato de subir? se averiguar el peso pero no esto.

EL codigo q uso para reducir es:

//funcion reduce fotos

function redimensionar_imagen($imagen, $nombre_imagen_asociada)


{



//indicamos el directorio donde se van a colgar las imágenes
$direc = 'utilidades/fotos_categorias/';
$directorio = "";
//establecemos los límites de ancho y alto
$nuevo_ancho = 600;
$nuevo_alto = 600;

//Recojo información de la imágen
$info_imagen = getimagesize($imagen);
$alto = $info_imagen[1];
$ancho = $info_imagen[0];
$tipo_imagen = $info_imagen[2];

//Determino las nuevas medidas en función de los límites
if($ancho > $nuevo_ancho OR $alto > $nuevo_alto)
{
if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))
{
$nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;
}
else
{
$nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);
}
}
else //si la imagen es más pequeña que los límites la dejo igual.
{
$nuevo_alto = $alto;
$nuevo_ancho = $ancho;
}

// dependiendo del tipo de imagen tengo que usar diferentes funciones
switch ($tipo_imagen) {
case 2: //si es jpeg …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromjpeg($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;


}
return true; //si todo ha ido bien devuelve true

}

//fin funcion reduce fotos


desde ya muchas gracias!!!

Rome
  #2 (permalink)  
Antiguo 14/03/2011, 17:29
 
Fecha de Ingreso: marzo-2011
Ubicación: Palmira
Mensajes: 35
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: problema con un upload de foto...

Hola,

para quitar el error de la memoria puedes colocar al inicio de tu script la funcion

Código PHP:
Ver original
  1. ini_set(“memory_limit”, "#M");

donde # es la cantidad que consideres necesaria.

Y para conocer el alto y ancho de las imagenes creo que se puede
hacer con js pero no se como.
  #3 (permalink)  
Antiguo 14/03/2011, 19:44
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 9 meses
Puntos: 3
Respuesta: problema con un upload de foto...

http://joseluisbz.wordpress.com/2011...ndolos-en-rtf/
__________________
Jose Luis Bernal Zambrano
Please response to:
[email protected]

Etiquetas: foto, upload
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 16:47.