Foros del Web » Programando para Internet » PHP »

Redimensionar Imagenes en el servidor

Estas en el tema de Redimensionar Imagenes en el servidor en el foro de PHP en Foros del Web. Buenas!! El caso es que tengo un formulario que hace que las imagenes se suban al servidor y se guarde la ruta en la base ...
  #1 (permalink)  
Antiguo 14/05/2014, 04:49
 
Fecha de Ingreso: mayo-2014
Mensajes: 30
Antigüedad: 10 años, 6 meses
Puntos: 0
Exclamación Redimensionar Imagenes en el servidor

Buenas!!
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
  1. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
  2. <tr>
  3. <td colspan="2">Formato: JPG, GIF, PNG ,JPEG.</td>
  4. </tr>
  5. <tr>
  6. <td colspan="2">
  7. <?php
  8. $max_upload = (int)(ini_get('upload_max_filesize'));
  9. $max_post = (int)(ini_get('post_max_size'));
  10. $memory_limit = (int)(ini_get('memory_limit'));
  11. $upload_mb = min($max_upload, $max_post, $memory_limit);
  12. echo "Tamaño maximo permitido <strong>$upload_mb Mb</strong><br>";
  13. ?>
  14. </td>
  15. </tr>
  16. <tr hidden="hidden">
  17. <td><label>Id Producto</label></td>
  18. <td><input type="text" name="id" value="<?php echo $codigo; ?>" readonly></td>
  19. </tr>
  20. <tr hidden="hidden">
  21. <td><label>Id Imagen</label></td>
  22. <td><input type="text" name="codigon" value="<?php echo $codigon; ?>" readonly></td>
  23. </tr>
  24. <tr>
  25. <td><label>Imagen</label></td>
  26. <td><input type="file" name="archivo"></td>
  27. </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.
  #2 (permalink)  
Antiguo 14/05/2014, 04:49
 
Fecha de Ingreso: mayo-2014
Mensajes: 30
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Redimensionar Imagenes en el servidor

Disculpas por no resaltar el codigo PHP
:(
  #3 (permalink)  
Antiguo 14/05/2014, 04:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Redimensionar Imagenes en el servidor

Lee esto: PHP:¿Por qué me sale "Warning: Cannot modify header information - headers already sent by (output started at 1:2) in 3 on line 4"?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 15/05/2014, 05:56
 
Fecha de Ingreso: mayo-2014
Mensajes: 30
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Redimensionar Imagenes en el servidor

Eso no me vale para mucho...alguna funcion que no necesita usar header igual me venia mejor jejej
Un saludo!

Etiquetas: formulario, html, imagenes, mysql, redimensionar, servidor
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 12:54.