Algunas funciones interesantes para acceder al sistema de archivos del servidor desde scripts Javascript, basadas en las funciones file system de PHP.
En este artículo, a modo de presentación de algunas de las posibilidades de las librerías php.js, comentadas anteriormente en DesarrolloWeb.com, vamos a mostrar cómo hacer uso de las funciones de PHP para el acceso al sistema de archivos del servidor, pero directamente desde Javascript. Esto lo podemos conseguir porque el mencionado proyecto php.js ha portado a Javascript cientos de funciones útiles existentes en PHP, entre las que hay muchas que trabajan con el sistema de archivos del servidor y que nos permiten acceder a muchos recursos del servidor, por medio de Ajax, pero sin necesitar conocer las complejidades inherentes a esos procesos ni la propia tecnología Ajax.
Así pues, simplemente tenemos que conocer las funciones PHP de acceso a los archivos del servidor y trabajar con ellas para recuperar cosas como si existe un fichero, con la función file_exists(), el contenido de texto completo de un archivo, con file_get_contents(), o el tamaño de un archivo en el disco del servidor, con filesize(). Estos son tres ejemplos sencillos de trabajo con las funciones del sistema de archivos de PHP en Javascript, que veremos en este artículo, pero existen otras muchas funciones útiles disponibles para los desarrolladores.
Las funciones del sistema de archivos que dispone PHP son muy ricas y tenerlas a nuestra disposición desde Javascript es una verdadera gozada, así pues este sería un gran ejemplo de las destacables posibilidades que nos abren las librerías php.js.
Comprobar con Javascript si un archivo existe en el servidor
Comencemos probando una sencilla función para saber si existe, o no, un archivo en el servidor. Esta función de PHP, que podemos disponer ahora también en Javascript, se llama file_exists() y le tenemos que enviar como parámetro la URL del archivo que deseamos comprobar su existencia. Nos devolverá un boleano, indicando con true que sí existe el fichero y con false la no existencia.
var archivo = "server.js";
if(file_exists(archivo)){
//podemos hacer cualquier cosa con ese fichero, porque sabemos que sí existe.
}
Además, volvemos a remarcar que para que la función file_exists() funcione, así como cualquier otra de las librerías php.js, tendremos que haber descargado esas funciones en algún paquete desde el sitio de phpjs.org.
Recibir el tamaño en bytes de un archivo del servidor con Javascript
Otro ejemplo de tarea que podríamos hacer muy fácilmente con las librerías php.js es obtener el tamaño en disco de un archivo del servidor. Para ello utilizaremos la función filesize(), que funciona igual que su correspondiente versión de PHP.var tamano = filesize("archivo-cualquiera.html');
Esto nos devuelve el tamaño en bytes, por lo que, si deseamos el tamaño en Kb tendremos que dividir el valor devuelto por 1024.
Leer el contenido completo de un archivo de texto del servidor con Javascript
Ahora veamos otra utilidad verdaderamente impresionante de estas librerías. Impresionante por funcionar de manera tan sencilla, a pesar de la complejidad de la tarea que se está solicitando. Se trata de acceder a un archivo de texto y recuperar todo su contenido en una variable.
Esto se hace en PHP por medio de la función file_get_contents(), que en su versión portada a Javascript funciona de la misma manera que en el lenguaje del servidor. Tenemos que llamar a la función pasándole la ruta del archivo cuyo contenido queremos recuperar y obtendremos como respuesta el texto completo que hay en ese fichero.
var texto_fichero = file_get_contents("archivo-solicitado.html");
Ejemplo completo de acceso al sistema de archivos del servidor con Javascript
Ahora podemos ver el código completo de un ejemplo de acceso al sistema de archivos del servidor, por medio de Javascript y Ajax, con las funciones de alto nivel que nos proporcionan las librerías php.js. En el ejemplo definimos una variable con una cadena que tiene el nombre de un archivo, comprobamos luego si existe ese fichero y en caso que exista, mostramos su tamaño en disco y su contenido de texto.
var archivo = "server.js";
if(file_exists(archivo)){
//existe ese fichero
document.write("<h2>El fichero " + archivo + " existe en el servidor</h2>");
//voy a ver cuánto ocupa ese fichero
var tamano = filesize(archivo);
document.write("<h2>El fichero " + archivo + " ocupa " + (tamano/1024) + " Kb</h2>");
//voy a traerme su contenido completo
var texto_fichero = file_get_contents(archivo);
document.write("<pre>" + texto_fichero + "</pre>");
}
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...