Foros del Web » Programando para Internet » PHP »

Evitar duplicados al subir archivos

Estas en el tema de Evitar duplicados al subir archivos en el foro de PHP en Foros del Web. Hola a todos: Tengo un formulario para subir archivo al servidor con la variante que en un combobox cargue los usuarios de la base de ...
  #1 (permalink)  
Antiguo 19/09/2009, 22:03
 
Fecha de Ingreso: abril-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 0
Evitar duplicados al subir archivos

Hola a todos:
Tengo un formulario para subir archivo al servidor con la variante que en un combobox cargue los usuarios de la base de datos, la idea es asociar un usuario con un archivo guardarlos en otra tabla archivoup, guardo la username de la tabla usuarios ruta del archivo, nombre, tamaño.
Me guarda la ambos campos pero, estoy en la validación de consultar si el archivo que esta subiendo ya existe asociado al usuario seleccionado y no he podido sacarlo sino lo valido guarda duplicados.

este es el php al que llamo del formulario nombre del combo usuario guardado en la variable $seleUser y campo de ruta se llama $userfile guardado en la variable $filePath. Aca esta el código:

<?php
$uploadDir = 'descargas/';//nombre del directorio donde guardamos los archivos
// ¿Qué tipos de archivo que desea hacer para no permitir?
$blacklist = array(".php", ".phtml", ".php3", ".php4", ".php5", ".exe", ".js",".html", ".htm", ".inc");
// tipos de archivo permitidos
$allowed_filetypes = array('.jpg','.gif','.bmp','.png','.doc','.xls','. ppt','.pdf');


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

$seleUser=$_POST['usuario'];
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$filePath = $uploadDir . $fileName;//variable contiene ruta del archivo subido
//valido que seleccione un usuario
if ($seleUser=="SELECCIONAR USUARIO"){
echo "Debe seleccionar el usuario asociado al archivo que esta subiendo";
exit;
}
//valido que la extensión sea correcta
$ext = substr($_FILES['userfile']['name'], strpos($_FILES['userfile']['name'],'.'), strlen($_FILES['userfile']['name'])-1);
if(!in_array($ext,$allowed_filetypes)){
echo "El archivo que intentó cargar no está permitido.";
exit;
}

$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
echo "Debe seleccionar un archivo a cargar.";
exit;
}else {


include 'includes/config1.php';//ruta de conección con la base de datos
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}

// echo "valor de ruta y nombre " .$filePath . $fileName ;//muestra los datos
$consulta_usuarios = mysql_query ("SELECT * FROM archivoup WHERE username ='$seleUser' AND nombre ='$fileName'") or die(mysql_error()); //AQUI EL PROBLEMA
$num = mysql_num_rows($consulta_usuarios);


if($total != 0){
echo "<br>El archivo asociado a ese usuario ya esta cargado <br>";
//exit;
}
else
{

//insertamos la ruta y datos del archivo a subir en la Base de Datos
$query = "INSERT INTO archivoup (username, nombre, size, tipo, ruta ) ".
"VALUES ('$seleUser', '$fileName', '$fileSize', '$fileType', '$filePath')";

mysql_query($query) or die('Error, Ha fallado la consulta : ' . mysql_error());


echo "<br>Ha subido el archivo satisfactoriamente<br>";


}
}

?>
Saludos Mary desde Chile viva Chile
  #2 (permalink)  
Antiguo 20/09/2009, 09:12
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Evitar duplicados al subir archivos

usa ESTA FUNCION para verificar la existencia del archivo.
__________________
Hospedaje Web al mejor costo!
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 04:31.