Comprobar si un archivo ya existe en el servidor con PHP
Por th3r0rn | 26 de September de 2009
En el post pasado puse como cargar archivos al servidor usando PHP. Ahora lo que quiero mostrar es como hacerle para comprobar si ya existe un archivo en el servidor, es decir, si un usuario carga una foto llamada MiFoto.jpg se quedara guardada en el servidor con tal nombre, pero que pasa si otro usuario sube una foto justamente con el mismo nombre? pues esto eliminarÃa la actual para remplazarla por esta, para solucionar este tipo de problemas PHP incorpora la funcion file_exists Esta funcion nos ayuda para saber si ya existe un archivo en el servidor, su uso es muy sencillo, recibe como argumente el nombre del archivo a comprobar con todo y la ruta.
[cc lang="php"]
$archivo = "/home/th3r0rn/www/archivo.txt";
if (file_exists($archivo)){
echo "El Archivo ya existe en el servidor, intente con un nombre diferente";
}
else
{
echo "El Archivo no existe, usted puede cargar este archivo";
}
?>
[/cc]
Esto lo podriamos implementar en un script que cargue archivos al servidor como el siguiente:
[cc lang="php"]
$size=$_FILES["fichero"]["size"];
$type=$_FILES["fichero"]["type"];
$tmp=$_FILES["fichero"]["tmp_name"];
$nombre=$_FILES["fichero"]["name"];
if ($size>=100000){
die(“el archivo es muy grande”);
}
elseif
($type!=”image/jpeg”){
die(“el archivo no esta en formato jpg”);
}
elseif(file_exists(“/home/th3r0rn/www/php/ficheros/ficheros/$nombre”)){
die(“el archivo ya existe en el servidor”);
}
if
(move_uploaded_file($tmp,”ficheros/$nombre”)){
echo”archivo cargado”;
}
else
{
echo”el archivo no se cargo”;
}
?>
[/cc]
Como vemos en la linea 16 es la que comprueba que el archivo no exista.
[cc lang="php"]
elseif(file_exists(“/home/th3r0rn/www/php/ficheros/ficheros/$nombre”)){
die(“el archivo ya existe en el servidor”);
}
[/cc]
La variable $nombre que pongo al final, toma como valor el nombre del archivo que envia el usuario. :)
![- [root@Linux th3r0rn]# ./header](http://www.imgeek.net/wp-content/themes/milbits/imagenes/web.logo.png)

