Foros del Web » Programando para Internet » PHP »

Duda subiendo imágenes al servidor

Estas en el tema de Duda subiendo imágenes al servidor en el foro de PHP en Foros del Web. Hola amigos, tengo un pequeño script para subir imágenes al servidor y de ello crear una galería, a decir verdad recién estoy empezando a hacerlo, ...
  #1 (permalink)  
Antiguo 28/03/2007, 19:13
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Duda subiendo imágenes al servidor

Hola amigos, tengo un pequeño script para subir imágenes al servidor y de ello crear una galería, a decir verdad recién estoy empezando a hacerlo, de momento tengo el formulario que envía la imagen con un comentario adicional y la guarda en un directorio de mi servidor y la ruta de dicha imagen la guardo en una tabla de MySQL.

El script en mención es el siguiente:

Código PHP:
<?php
    session_start
();
    if(!empty(
$_SESSION["usuario"])) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>

</head>
<body>
<?php
    
if($enviar) {
        include(
'config.php');
        if (
is_uploaded_file($_FILES['nomimg']['tmp_name'])) {
            if (
$_FILES['nomimg']['type'] == "image/jpeg" || $_FILES['nomimg']['type'] == "image/pjpeg" || $_FILES['nomimg']['type'] == "image/JPG") {
                
$nuevoNombre time().".jpg";
                
move_uploaded_file($_FILES['nomimg']['tmp_name'], "fotografias/$nuevoNombre");
                
$ruta "fotografias/$nuevoNombre";
                
chmod($ruta0777);
                
$contenido stripslashes($_POST['contenido']);
                
$contenido strip_tags($contenido);
                
mysql_query("INSERT INTO fotos (id_user,nomimg,contenido) VALUES('".$_POST[id_user]."','".$ruta."','".$_POST[contenido]."')");
                echo 
"imagen $nuevoNombre subida con éxito";
            }else {
                echo 
"Formato no válido para fichero de imagen";
            }
        }else {
            echo 
"Error al cargar imagen: ".$_FILES['nomimg']['name'];
        }
    }else {
?>
<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="post">
    Hola <?=$_SESSION["usuario"]?><br />
    <input type="hidden" name="id_user" value="<?=$_SESSION['idusuario']?>" />
    <input name="nomimg" type="file" /><br />
    Comentario:<br />
    <textarea name="contenido" cols="50" rows="5"></textarea><br />
    <input type="submit" name="enviar" value="Subir Fichero" />
</form>
<?php
    
}
?>
</body>
</html>
<?php
    
}else {
        echo 
"Acceso denegado.";
    }
?>
Si se dan cuenta para subir imágenes el usuario debe estar registrado e identificado, luego de ello sube la imagen y esta se guarda en un directorio llamado fotografias y la ruta de la imagen la guardo en MySQL, lo que quiero ahora es añadirle una función que al mismo tiempo que subo la imagen genere un thumbnail de dicha imagen y lo guarde en el mismo directorio añadiéndole a este un prefijo seguido del nombre de la imagen original, para poder crear la galería.

Espero que alguien me eche una mano con ello, gracias por anticipado.

Saludos.
  #2 (permalink)  
Antiguo 29/03/2007, 01:46
pez
 
Fecha de Ingreso: enero-2002
Mensajes: 354
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Duda subiendo imágenes al servidor

en el FAQ's de PHP esta como crear un thumbnail.

la alternativa es generar una imagen chica automaticamente desde un url:

Código PHP:
<?php

include("../../conexion.php");

    
$ext_file=split("[.]",$file);
    
$ext strtolower($ext_file[2]);
    
$tam=getimagesize($file);
    if((
$tam[1]/$tam[0])>10){
        
$n_alto=140;
        
$n_ancho=($n_alto*($tam[0]/$tam[1]));
    }else{
        
$n_ancho=140;
        
$n_alto=($n_ancho*($tam[1]/$tam[0]));
    }
    if(
$ext=="jpg" || $ext=="jpeg"){     
        
$origen  imagecreatefromjpeg($file); 
         
$imagen  imagecreatetruecolor($n_ancho,$n_alto); 
         
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]); 
        
header("Content-type: image/jpeg");  
         
imagejpeg($imagen); 
    }else if(
$ext=="png"){ 
         
$origen  imagecreatefrompng($file); 
         
$imagen  imagecreatetruecolor($n_ancho,$n_alto); 
      
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
        
header("Content-type: image/png"); 
        
imagepng($imagen); 
    }else if(
$ext=="gif"){ 
      
$origen  imagecreatefromgif($file); 
      
$imagen  imagecreatetruecolor($n_ancho,$n_alto); 
      
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]); 
      
header("Content-type: image/gif"); 
        
imagegif($imagen);  
    }else{ 
            return 
false
    }
?>
y la llamas haci:
<img border="0" zrc="imagenChica.php?file=./imagenes/'.$resultados["imagen"].'">

Un Saludo
  #3 (permalink)  
Antiguo 29/03/2007, 02:18
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Duda subiendo imágenes al servidor

Hola pez, gracias por tu ayuda, pero lo que yo deseo hacer es que antes de que se guarden los datos en la BD se genere el thumbnail y se guarde en el mismo directorio donde está la imagen en tamaño real y luego guardar las rutas de ambos en la tabla del mi BD y finalmente hacer la consulta para crear la galería la cual sí puedo hacer, sólo tengo problemas para hacer el thumbnail, no sé si me dejo entender.

Saludos.
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 20:39.