Foros del Web » Programando para Internet » PHP »

que hacer con los duplicados upload de imagen

Estas en el tema de que hacer con los duplicados upload de imagen en el foro de PHP en Foros del Web. que hacer con los duplicados de upload de imagen es decir, si ya tengo un archivo llamado imagen1.png y el usuario sin saberlo sube una ...
  #1 (permalink)  
Antiguo 01/03/2009, 23:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
que hacer con los duplicados upload de imagen

que hacer con los duplicados de upload de imagen

es decir, si ya tengo un archivo llamado imagen1.png y el usuario sin saberlo sube una imagen distinta pero con el mismo nombre, lo ideal es que no lo sobreescriba, sino que php le cambie el nombre al archivo que se sube como repetido en nombre,

entonces que se puede hacer en ese caso ? cuales son los atributos que se necesitan modificar, en php
  #2 (permalink)  
Antiguo 01/03/2009, 23:14
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: que hacer con los duplicados upload de imagen

Hola flashtkd,

Claro que es posible pero tienes que programarlo tu, lo ideal es que el archivo tenga un nombre aleatorio para evitar que se sobreescriba, pero puedes usar file_exists() para checar si existe la imagen y modificarle el nombre a la hora de llamar a move_uploaded_file().

Saludos
  #3 (permalink)  
Antiguo 02/03/2009, 07:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: que hacer con los duplicados upload de imagen

muchas gracias GatorV

ahora funciona correctamente los procedimiento, eso si el randon de aleatorio en caso de que exista me lo dio en rango de numeros, no se si se podra en string o combinados.

Código PHP:

<?php
$extensiones
=array("html","exe","php");

$path="C:/AppServ/www/Prueba/Listo/francisco/imagenes";
$nombre=$HTTP_POST_FILES['imagen']['name'];
$tamanio=$HTTP_POST_FILES['imagen']['size'];
$tipo=$HTTP_POST_FILES['imagen']['type'];
$var explode(".","$nombre");
$num count($extensiones);
$valor $num-1;
for(
$i=0$i<=$valor$i++) {
    if(
$extensiones[$i] == $var[1]) {
    echo 
"Tipo de Archivo no admitido";
    exit;
    }
}

$file "imagenes/$nombre";

if (
file_exists($file)) 
 { 
  echo 
"existe";
  
  echo 
rand(515);  
  
$cambio rand() ;
  
rename("imagenes/$nombre""imagenes/$cambio.png");  
 } 
else 
   { 
   echo 
"no existe"
   
   if (
is_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name']))
 {
  
copy($HTTP_POST_FILES['imagen']['tmp_name'], "$path/$nombre");
  echo 
"El imagen se ha subido correctamente al servidor, muchas gracias <p>";
  echo 
"Nombre: $nombre <p>";
  echo 
"Tamaño: $tamanio <p>";
  echo 
"Tipo: $tipo";
 }
 
else { echo 
"Error al subir el imagen"; }

   }   
?>
  #4 (permalink)  
Antiguo 02/03/2009, 09:11
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: que hacer con los duplicados upload de imagen

Un simple consejo.

No te limites a hacerlo una sola vez porque se puede dar el caso que generes un numero aleatorio que ya se haya generado con anterioridad. Utiliza una estructura de while para ello.

Un saludo.
  #5 (permalink)  
Antiguo 02/03/2009, 09:19
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: que hacer con los duplicados upload de imagen

Puedes usar uniqid en conjunto con md5 para obtener una cadena lo suficientemente aleatoria.

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 14:29.