Las propiedades de los Ficheros
No siempre se puede leer un fichero. A veces es porque no existe, o puede que no tengamos los permisos adecuados.
Lo mismo puede ocurrir con las operaciones de escritura o de eliminación.
Antes de intentar llevar a cabo algunas de estas maniobras es interesante saber si se podrá efectuar.
PHP nos proporciona funciones muy útiles para esto.
Empezaremos por conocer la función file_exists()
- Como argumento recibe un nombre de fichero (incluyendo la ruta si procede).
- Devuelve un valor lógico, que será true si el fichero existe en la ruta especificada, o false en caso contrario.
La función in_readable()
- Recibe como argumentos un nombre de fichero (incluyendo la ruta si procede) y comprueba si el fichero se puede leer.
- Devuelve un valor lógico, que será true si el fichero se pueda leer en dicha ruta, o false en caso contrario.
Otra función a la que debemos recurrir es is_writeable()
- Recibe un nombre de fichero como argumento (incluyendo la ruta si procede).
- Devuelve un valor true si el fichero nos permite escribir en él, en caso de no existir o no tener los permisos devuelve false.
La función is_executable()
- Recibe un nombre de fichero como argumento (incluyendo la ruta si procede).
- Si el fichero no existe o no es ejecutable devuelve false, de lo contrario devuelve true.
Función is_file()
- Determina si el nombre pasado como argumento es un fichero
- En caso de ser un fichero devuelve true, de no existir o no ser un fichero devuelve false.
Función is_dir()
- Determina si el nombre pasado como argumento es un directorio.
- En caso de ser un directorio devuelve true, de no existir o no ser un directorio devuelve false.
La función is_link()
- Determina si el nombre pasado como argumento es un enlace simbólico.
- Si no existe o no es un enlace simbólico devuelve el valor false
- Esta función y el concepto de enlace simbólico pertenecen al entorno Unix. En windows no existen enlaces simbólicos, el concepto sería equivalente a accesos directos, pero PHP no los reconoce, por lo tanto en el entorno Windows esta función carece de sentido.
Veamos un ejemplo donde usamos estas funciones:
Primero un simple formulario para subir un archivo.
Primero un simple formulario para subir un archivo.
<html> <body> <form name="propiedades" id="propiedades" method="post" action="comprobarPropiedades.php"> <input type="file" name="elemento" id="elemento"> <input type="submit" name="mandar" id="mandar" value="Enviar"> </form> </body> </html>Nuestro script de PHP es el siguiente:
<?php // Se define el salto de línea define ("salto","<br>\n"); // Se comprueba si existe el fichero. if (file_exists($_POST["elemento"])) { echo ("El elemento existe.".salto); } else { echo ("El elemento NO existe en la ruta especificada .".salto); } // Se comprueba si es un fichero. if (is_file($_POST["elemento"])) { echo ("El elemento es un fichero.".salto); } else { echo ("El elemento NO es un fichero.".salto); } // Se comprueba si es un directorio. if (is_dir($_POST["elemento"])) { echo ("El elemento es un directorio.".salto); } else { echo ("El elemento NO es un directorio.".salto); } // Se comprueba si es un enlace simbólico. if (is_link($_POST["elemento"])) { echo ("El elemento es un enlace simbólico.".salto); } else { echo ("El elemento NO es un enlace simbólico.".salto); } // Se comprueba si se puede leer. if (is_readable($_POST["elemento"])) { echo ("El elemento es legible.".salto); } else { echo ("El elemento NO es legible.".salto); } // Se comprueba si se puede escribir. if (is_writeable($_POST["elemento"])) { echo ("El elemento es escribible.".salto); } else { echo ("El elemento NO es escribible.".salto); } // Se comprueba si se puede ejecutar. if (is_executable($_POST["elemento"])) { echo ("El elemento es ejecutable.".salto); } else { echo ("El elemento NO es ejecutable.".salto); } ?>Córralo en su navegador, haga pruebas con diferentes archivos, dentro y fuera del directorio y observe lo que ocurre.
Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto
No se te olvide Comentar y Compartir
en:
en:
0 comentarios:
Publicar un comentario