Traductor




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

0 comentarios:

Publicar un comentario