Foros del Web » Programando para Internet » PHP »

Problema con imagenes

Estas en el tema de Problema con imagenes en el foro de PHP en Foros del Web. Hola gente del Foro!! Les comento que soy un aprendiz y aficionado de la programación en PHP y estoy trabajando en mi primer proyecto que ...
  #1 (permalink)  
Antiguo 09/09/2008, 11:10
 
Fecha de Ingreso: enero-2007
Mensajes: 3
Antigüedad: 17 años, 3 meses
Puntos: 0
Pregunta Problema con imagenes

Hola gente del Foro!! Les comento que soy un aprendiz y aficionado de la programación en PHP y estoy trabajando en mi primer proyecto que es una página de avisos clasificados donde los usuarios del sitio pueden añadir avisos con “Titulo”, “Descripción”, “datos de contacto”, “imágenes”.

- Las imágenes se guardan en el directorio “imágenes/subidas/”
- Los Thumbnail se guardan en el directorio “imágenes/Thumbs”
- Las rutas de las imágenes se guardan en la base de datos.

Por el momento va todo muy bien pero me encontré con el siguiente problema:
Ej.: Si un usuario publica un aviso con una imagen llamada “miaviso.jpg” y otro usuario o el mismo usuario publica otro aviso con una imagen también llamada “miaviso.jpg” estarían compartiendo la misma imagen. Y esto es de gran problema ya que las imágenes podrían tener el mismo nombre pero ser diferentes.

Quisiera saber si existe alguna manera da cambiar el nombre a las imagen al momento de subirlas al directorio o si alguien tiene alguna solución para ayudarme a resolver este problema.

A continuación les dejo el código que utilizó para subir las imágenes

Código PHP:
<?php
$destino 
'imagenes/subidas' // destino de guardado de la imagen real
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' $_FILES 'file' ][ 'name' ]);

$ruta=$_FILES 'file' ][ 'name' ];
$thumbs="tn_".$_FILES 'file' ][ 'name' ];

function 
thumbjpeg($imagen,$anchura) {

// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb "../thumbs/";

// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
// el thumbnail se llamaría "tn_imagen1.jpg"
$fecha=date("d-m-Y");
$prefijo_thumb "tn_";
$camino_nombre=explode("/",$imagen);

// Aquí tendremos el nombre de la imagen.
$nombre=end($camino_nombre);

// Aquí la ruta especificada para buscar la imagen.
$camino=substr($imagen,0,strlen($imagen)-strlen($nombre));

// Intentamos crear el directorio de thumbnails, si no existiera previamente.
if (!file_exists($camino.$dir_thumb))
mkdir ($camino.$dir_thumb0777); // or die("No se ha podido crear el directorio $dir_thumb");

// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
//echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>";
$img imagecreatefromjpeg($camino.$nombre); // or die("No se encuentra la imagen $camino$nombre<br>n");
// miramos el tamaño de la imagen original...
$datos getimagesize($camino.$nombre); // or die("Problemas con $camino$nombre<br>");

// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[0] / $anchura);
$altura round($datos[1] / $ratio);

// esta será la nueva imagen reescalada
$thumb imagecreatetruecolor($anchura,$altura);

// con esta función la reescalamos
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);

// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
    }

    return 
"ok";
}

$imagen$destino '/' $_FILES 'file' ][ 'name' ];

$proceso1thumbjpeg($imagen125);

if(
$proceso1=="ok"){
        
//conectamos a la base
include('../include/config.php');
    
$result mysql_query("INSERT INTO `imagenes` ( `id` , `ruta` , `thumbs` ) VALUES ('', '$ruta', '$thumbs')");
mysql_close($db);
    
if(
$result!=0){
        echo 
"Se ha subido correctamente la imagen y se ha creado correctamente el Thumbnail !";
    }
    else{
        echo 
"Ha ocurrido un error y no se ha podido subir la imagen, por favor, contacta a mariano ! :P";
    }
        
}  
?>
Desde ya muchas gracias a todos los usuarios y administradores del foro por ser parte de esta comunidad que me ha brindado mucha ayuda y sacado de miles de inquietudes.
  #2 (permalink)  
Antiguo 09/09/2008, 12:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con imagenes

Hola limay_22,

El segundo parametro de la función move_uploaded_file es la ruta / nombre del archivo, ahi puedes tu especificar otro nombre, y en dado caso puedes generar uno unico usando el algoritmo que prefieras.

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 00:17.