Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/07/2012, 11:00
educacanis
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 12
mezclar funciones de subir imagen al servidor y redimensionarla

Hola, estoy intentando subir imágenes al servidor a través de un formulario y redimensionar la imagen para que se guarde con unas medidas concretas (no que se muestre solamente con esas medidas, es decir, que no tiene que ver con el diseño gráfico ni con CSS)

He estado mirando diversos aportes de este foro, e incluso una página en la wiki que de hecho se titula subir imágenes y redimensionarlas, pero no me funciona, así que como no me sube las imágenes, he adaptado otro código para subir las imágenes, es el siguiente:
Código PHP:
<?php
if (isset($_POST['submit'])) { 
    if(!empty(
$_FILES['fichero']) && $_FILES['fichero']['error'] == UPLOAD_ERR_OK) {
        if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
            
if($_FILES['fichero']['type']=="image/jpeg" || $_FILES['fichero']['type']=="image/png" || $_FILES['fichero']['type']=="image/gif"){                
                
$ruta"../Imagenes/noticias/".date("Y")."/".$_FILES['fichero']['name']; // Ruta de la carpeta donde se guarda, más el nombre del archivo
                
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta)) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
                       echo 
"Nombre: <i><a href=\"".$ruta."\">".$_FILES['fichero']['name']."</a></i><br>";
                    echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                    echo 
"<br><hr><br>";
                }
            } else echo 
"El archivo no es una imagen con una extensión válida";

        }
    } 
}
?>
 
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data">
    Archivo: <input name="fichero" type="file">
    <input name="submit" type="submit" value="Upload!"> 
</form>
Sin embargo, como he comentado, pensaba redimensionarla, pero no he conseguido absolutamente nada, buscando en diversos sitios, he encontrado este código, que sí me funciona, creando una imagen redimensionada:

Código PHP:
<?php
$ruta_imagen 
'imagen_de_prueba.png';

//Cargo en memoria la imagen que quiero redimensionar
$imagen_original imagecreatefrompng($ruta_imagen);

$ancho_original imagesx($imagen_original);
$alto_original imagesy($imagen_original);

$ancho_final 250;
$alto_final = ($ancho_final $ancho_original) * $alto_original;

//Creo una imagen vacia, con el alto y el ancho que tendrá la imagen redimensionada
$imagen_redimensionada imagecreatetruecolor($ancho_final$alto_final);

imagecopyresampled($imagen_redimensionada$imagen_original0000$ancho_final$alto_final$ancho_original$alto_original);

//Guardo la imagen ya redimensionada
imagepng($imagen_redimensionada'imagen_redimensionada.png');

//Libero recursos, destruyendo las imágenes que estaban en memoria
imagedestroy($imagen_original);
imagedestroy($imagen_redimensionada);

?>
En realidad, el código está bastante bien explicado, lo que ayuda a entenderlo correctamente, pero no he conseguido que funcione dentro del código para subir la imagen, solamente si pongo literalmente la ruta inicial así:

$ruta_imagen = 'imagen_de_prueba.png';

En fin si alguien me puede echar un cable se lo agradecería, ya no sé ni por donde cogerlo