Hola,
Para resolver eso tienes que reconfigurar el archivo php.ini y cambiar el limite de carga de archivos.
No he podido revisar tu codigo pero lo que te recomendaria es pre procesar con image magick para tener una imagen de menos peso.
Saludos!
Enviado desde mi oficina móvil BlackBerry® de Telcel
-----Original Message-----
From: "Irantzu Leunda Biskarret" <[email protected]>
Date: Wed, 8 Dec 2010 13:03:04
To: <[email protected]>
Subject: [PHP-ES] Alguien que me diga como solventar esto!!
Tengo una web en la que se suben imágenes y yo las redimensiono antes de
subir, el caso es que mi cliente no controla nada de computadores y sus
fotos en algunas ocasiones pesan demasiado y ahora estoy yo tratando de
subir un par de fotos que pesan algo mas de 1 mega y me sale este error
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to
allocate 12288 bytes) in
/home/dosal0/public_html/arratiakoinmobiliaria/gestion/redimensionaimagen.php
on line 18
CODIGO redimensioanimagen.php
<?php
//$imagen es la ruta en el servidor de la imagen subida
$imagen_nombre = $directorio . $nombre_archivo;
//$path es la ruta donde queremos que se guarde
$path = $directorio;
//$iden es el nombre que queremos darle, en mi caso es el id
// de la noticia insertada
$iden = $nombre_archivo;
$im = NULL;
//dependiendo de la extensión creamos el recurso de la imagen
if(stristr($imagen_nombre, 'jpg')){$im =
imagecreatefromjpeg($imagen_nombre);}
if(stristr($imagen_nombre, 'gif')){$im =
imagecreatefromgif($imagen_nombre);}
if(stristr($imagen_nombre, 'png')){$im =
imagecreatefrompng($imagen_nombre);}
//Si el archivo tenia extensión JPG, GIF o PNG está permitido y tendremos
una imagen cargada
if($im !== NULL)
{
//El archivo se llamara
$nombre = $path . $iden;
$nombremed = $path . 'med_' . $iden;
//$nombreth = $path . 'th_' . $iden;
//IMAGEN GRANDE
//Primero creamos la imagen grande. Nuestros limites son 640px de ancho
(el alto se calcula en función del ancho)
$ancho_max = 700;
//ajustamos la anchura
echo "nombre_reg: ".$nombreg;
if(imagesx($im) > $ancho_max)
{
$alto = imagesy($im) * $ancho_max / imagesx($im);
$dest = imagecreatetruecolor($ancho_max, $alto);
imagecopyresampled($dest, $im, 0, 0, 0, 0,$ancho_max, $alto,
imagesx($im), imagesy($im));
imagejpeg($dest, $nombre, 95);
//chmod($nombreg,0777);
imagedestroy($dest);
} else {
imagejpeg($im, $nombre);
//chmod($nombre,0777);
}
//MEDIANA
//Segundo creamos la mediana de la noticia con un ancho máximo
de...($ancho_ok) (el alto se calcula en función del ancho)
/*$anchomed_ok = 250;
$alto = imagesy($im) * $anchomed_ok / imagesx($im);
$dest = imagecreatetruecolor($anchomed_ok, $alto);
imagecopyresampled($dest, $im, 0, 0, 0, 0, $anchomed_ok, $alto,
imagesx($im), imagesy($im));
imagejpeg($dest, $nombremed, 95);
/*
//THUMBNAIL
//Tercero creamos la miniatura de la noticia con un ancho máximo
de...($ancho_ok) (el alto se calcula en función del ancho)
$anchoth_ok = 100;
$alto = imagesy($im) * $anchoth_ok / imagesx($im);
$dest = imagecreatetruecolor($anchoth_ok, $alto);
imagecopyresampled($dest, $im, 0, 0, 0, 0, $anchoth_ok, $alto,
imagesx($im), imagesy($im));
imagejpeg($dest, $nombreth, 95);
*/
/*imagedestroy($dest);
imagedestroy($im);*/
//Opcionalmente podemos borrar el archivo original y liberar espacio en
disco duro
@unlink($imagen);
}
?>
Si alguien quiere ver los archivos que me diga y se lo envío.
Muchas gracias
--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.