Fatal error: Out of memory (allocated 31457280) (tried to allocate 16000 bytes) in /homepages/15/d352575685/htdocs/Juani/redimensionar.php on line 35
os dejo el script.
Redimensionar.php
Código PHP:
<?php
function redimensionar($alto,$ancho,$destinofoto,$nombrefoto)
{
ini_set('memory_limit', '100M');
$origen=$destinofoto.$nombrefoto;
$destino=$destinofoto."1-".$nombrefoto;
$destino_temporal=tempnam("Perros/","tmp");
list($ancho, $alto) = getimagesize($origen);
while($ancho > "1600" || $alto > "1600")
{
$ancho=$ancho/2;
$alto=$alto/2;
}
redimensionar_jpeg($origen, $destino_temporal, $ancho, $alto, 100);
// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
//delete($destinofoto.$nombrefoto);
//rename($destinofoto."1-".$nombrefoto,$destinofoto.$nombrefoto);
unlink($destino_temporal);
unlink($origen);
rename($destino,$origen);
}
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
set_time_limit(300);
ini_set('memory_limit', '100M');
ini_set('realpath_cache_size', '10M');
// crear una imagen desde el original
$img = ImageCreateFromJPEG($img_original);
// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
// redimensiona la imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
ImageDestroy($img);
}
?>
Y aquí os dejo el codigo que lo llama.
Código PHP:
<?php
set_time_limit(300);
ini_set('memory_limit', '20000M');
if (isset($_REQUEST['enviado']))
{
include("conexion.php");
include("redimensionar.php");
$query="Select * from perros where Nombre like '".$_REQUEST['Nombre']."'";
$result=mysql_query($query,$c1);
$linea=mysql_fetch_row($result);
if($linea==null)
{
//Linea con los datos del perro.
//Creamos la carpeta con el nombre del perro.
$directorio= "Perros/".$_REQUEST['Nombre'];
mkdir($directorio);
if (!empty($_FILES['foto']['name']))
{
$foto= "Perros/".$_REQUEST['Nombre']."/".$_FILES['foto']['name'];
$destinofoto="Perros/".$_REQUEST['Nombre']."/";
$nombrefoto=$_FILES['foto']['name'];
if(copy($_FILES['foto']['tmp_name'], $foto))
{
list($ancho, $alto) = getimagesize($foto);
if($ancho > "1600" || $alto > "1600")
{
redimensionar($alto,$ancho,$destinofoto,$nombrefoto);
}
$query="Insert into perros values('','".$_REQUEST['Nombre']."','".$_REQUEST['Nacimiento']."','".$_REQUEST['Estado']."','".$_REQUEST['Padre']."','".$_REQUEST['Madre']."','".$_REQUEST['Raza']."','".$foto."','".$_REQUEST['Sexo']."')";
mysql_query($query,$c1);
echo"<center><big>Los datos se han introducido correctamente.</big></center>";
echo '<META http-equiv="refresh" content="3;URL=admin.php">';
}
else
{
echo"<center><big>Los datos no se han introducido correctamente.</big></center>";
echo '<META http-equiv="refresh" content="8;URL=admin.php">';
}
}
else
{
$query="Insert into perros values('','".$_REQUEST['Nombre']."','".$_REQUEST['Nacimiento']."','".$_REQUEST['Estado']."','".$_REQUEST['Padre']."','".$_REQUEST['Madre']."','".$_REQUEST['Raza']."','','".$_REQUEST['Sexo']."')";
mysql_query($query,$c1);
echo"<center><big>Los datos se han introducido correctamente.</big></center>";
echo '<META http-equiv="refresh" content="3;URL=admin.php">';
}
}
else
{
echo "<center><h1>Ya existe un perro con ese nombre.</h1></center>";
echo '<META http-equiv="refresh" content="5;URL=admin.php">';
}
}
else
echo '<META http-equiv="refresh" content="0;URL=admin.php">';
?>