El caso es que tengo un formulario que hace que las imagenes se suban al servidor y se guarde la ruta en la base de datos de mysql.Esto de hecho lo hace de maravilla.
Con el fin de que dichas imagenes ocupen menos espacio en el servidor estoy tratando de redimensionarlas a diferentes tamaños pero no consigo hacer una funcion que lo haga.
La que hice hasta ahora me da fallo en los headers y no se como puedo solucionarlo.
Os pongo el codigo de como las cojo y la funcion que las tendria que redimensionar.
Codigo HTML:
Código HTML:
Ver original
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data"> <tr> </tr> <tr> <td colspan="2"> <?php $max_upload = (int)(ini_get('upload_max_filesize')); $max_post = (int)(ini_get('post_max_size')); $memory_limit = (int)(ini_get('memory_limit')); $upload_mb = min($max_upload, $max_post, $memory_limit); ?> </td> </tr> <tr hidden="hidden"> </tr> <tr hidden="hidden"> </tr> <tr> </tr>
Y esta es la función que me devuelve todo el tiempo el error de headers already sent.Por lo que he leido es un problema de mandar los headers despues de que ya se haya pintado algo en la pagina,por lo que mi pregunta esta en si se puede hacer de otra manera
Funcion:
function redimensionar($ruta,$anchura,$hmax)
{
$datos = getimagesize($ruta);
if($datos[2]==1){$img = @imagecreatefromgif($ruta);}
if($datos[2]==2){$img = @imagecreatefromjpeg($ruta);}
if($datos[2]==3){$img = @imagecreatefrompng($ruta);}
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
if($datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if($datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
if($datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
imagedestroy($thumb);
}
El error que me tira es este:
Warning: Cannot modify header information - headers already sent by
Gracias de antemano a tod@s por echarme una mano.