Como subir imagenes repetidas en php , postgresql

  • Autor Autor iniciopublic
  • Fecha de inicio Fecha de inicio
iniciopublic

iniciopublic

Préstamo impago
1
Ómicron
Verificación en dos pasos activada
Suscripción a IA
Hola a todos , tengo un pequeño problema

Con este código guardo una imagen

Como ven se guarda la imagen en la carpeta "imagenes" y la ruta de la misma en el campo nombre_foto
PHP:
$ruta="imagenes";
$archivo=$_FILES['imagen']['tmp_name'];
$nombreArchivo=$_FILES['imagen']['name'];
move_uploaded_file($archivo,$ruta."/".$nombreArchivo);
$ruta=$ruta."/".$nombreArchivo;

   
  $query = "INSERT INTO usuarios(nombre_foto) VALUES ('$ruta')";

$result = pg_query($dbconn, $query) or die('ERROR AL INSERTAR DATOS: ' . pg_last_error());

$cmdtuples = pg_affected_rows($result);
echo $cmdtuples . " datos registrados.\n";


// Free resultset liberar los datos
pg_free_result($result);

Funciona bien , mi problema es que cuando se subo otra imagen repetida osea con el mismo nombre , por ejemplo : imagen2015.jpg , se remplaza la anterior

Yo quiero que cada imagen se única en cada registro ¿alguna manera que pueda hacer?


Gracias :encouragement:
 
Última edición:
require_once '../Inc/funciones.php';

$obj = new Avisos();

if(isset($_POST['enviar'])){

//Validamos que no sean ams de 5 imagenes las que se cargaron

if(!sizeof($_FILES['fotosavisos']['name']) > 5){

echo 'ha cargado mas de 5 fotos';

}else{
//Aca es donde deberia colocar el codigo que se encarga de sbuir las imagenes?


for($i=1;$i <= 5;$i++){
if(!empty($_FILES['fotosavisos']['name'][$i])){
//echo $i;


$rutas = array('', ''); // Inicializas con dos rutas vacías
//Subida de Archivos
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal)
{

//asignamos un nombre unico para que no se repita si el nombre de la imagen ya existe en el servidor
//$nombreUnico= md5( time());


//Nombre del Arreglo generado con el input fotosavisos
$nombres=$_FILES['fotosavisos']['name'][$key];

//Obtenemos la extension del archivo
//$nombreUnico=substr(md5($nombres),0 , 10);

//$nombres= preg_replace('#[^a-z.0-9]#i', '', $nombres);

//Nombre Temporal de la Imagen (Generada por el servidor)
$nombresTemporal=$_FILES['fotosavisos']['tmp_name'][$key];
//Tamaño de la Imagen
$tamaño=$_FILES['fotosavisos']['size'][$key];
//Tipo de Imagen
$tipo=$_FILES['fotosavisos']['type'][$key];

//Ruta en Servidor
$rutaFinal="../imagenes_avisos/".$nombres;
$rutaFinalSQL="imagenes_avisos/".$nombres; //VALIDAR QUE ESTA RUTA EXISTA

//Movemos los Archivos al Servidor
move_uploaded_file($nombresTemporal,$rutaFinal);

// Actualizas la ruta correspondiente para este archivo
$rutas[$key] = $rutaFinalSQL;


}//foreach

}//if empty

}//for

}//else post

try{

$obj->insertarAvisos($rutas);
//print_r($_POST);
}catch(PDOException $e){
echo $e;
}

}// if post
 
Gracias , lo que hice fue usar la función md5 () :encouragement:

PHP:
$nombreUnico= md5( time()); 

 
$ruta="imagenes";
$archivo=$_FILES['imagen']['tmp_name'];
$nombreArchivo=$_FILES['imagen']['name'];
 
move_uploaded_file($archivo,$ruta."/".$nombreArchivo);

$ruta=$ruta."/".$nombreUnico.$nombreArchivo;
 
Atrás
Arriba