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