Foros del Web » Programando para Internet » PHP »

mezclar funciones de subir imagen al servidor y redimensionarla

Estas en el tema de mezclar funciones de subir imagen al servidor y redimensionarla en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/07/2012, 11:00
 
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
  #2 (permalink)  
Antiguo 17/07/2012, 13:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 5 meses
Puntos: 1532
Respuesta: mezclar funciones de subir imagen al servidor y redimensionarla

cuando haces el move_uploaded_file, en $_FILES['fichero']['tmp_name'] tienes la ruta final, es lo que necesitas para aplicar el otro código, inténtalo no es difícil
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 18/07/2012, 06:11
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: mezclar funciones de subir imagen al servidor y redimensionarla

Muchas gracias!! ya lo he conseguido! me ha costado un par de intentos más pero al final funciona, el problema es que yo lo intentaba hacer antes de moverlo, después del is_uploaded_file, y por eso me daba errores.

Etiquetas: formulario, funciones, mezclar, 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 17:31.