Se explican las funciones para realizar transferencia de archivos, utilizando el protocolo FTP, desde páginas PHP. Ejemplo de código para aprender a subir archivos al servidor.
¿QUE ES EL FTP?
Siglas de File Transfer Protocol o Protocolo de Transferencia de Archivos. Como su propio nombre lo indica, es un protocolo (perteneciente a TCP/IP) que se encarga de la transferencia de archivos entre computadoras conectadas en red. Al basarse en la arquitectura Cliente / Servidor, el FTP hace uso de dos componentes básicos:
-
Un cliente FTP. El cual se encarga de conectarse a un servidor FTP para descargar o subir archivos.
-
Un servidor FTP. Se encarga de procesar las peticiones de los clientes FTP, permitiéndoles descargar o subir archivos desde él.
Para conectarnos a un servidor FTP, y así poder realizar consultas en él, necesitaremos los siguientes datos:
-
Nombre del Servidor. Es la IP o Nombre del Servidor FTP al cual nos hemos de conectar, tal como: 65.134.10.5 o ftp.billysite.net
- Puerto. Número del puerto del servidor. Por defecto es 21.
-
Cuenta de Usuario. Es el nombre de la cuenta de usario que se nos ha asignado. Hay que asegurarse que cuenta con los permisos necesarios para subir o bajar archivos. De no tener una cuenta de usuario se puede acceder como usuario anónimo utilizando el nombre de usuario anonymous.
-
Clave de acceso. Es nuestra contraseña de cuenta de usuario. De acceder como usuario anónimo colocaremos como clave nuestro correo-e a manera de cortesía.
Una vez conectados al servidor FTP podremos hacer uso de su comandos para realizar las tareas que mejor creamos conveniente. Este artículo no pretende esbozar en gran medida el tema de FTP, al no ser éste el objetivo fundamental del mismo. Para més información sobre este aspecto le recomiendo revisar el árticulo de Michael Calore: "El ABC de la transferencia de archivos por Internet", disponible en el web site de WebMonkey.
FUNCIONES FTP EN PHP.
PHP hace uso de funciones FTP para acceder aun servidor web, a manera de cliente. A continuación mostraremos las funciones básicas a usar en el script, así como una breve descripción de las misma. Si quiere mayor detalle de estas y otras funciones FTP le aconsejo consultar la documentación oficial del PHP, disponible en: http://www.php.net/docs.php.
Función |
Sintaxis |
Descripción |
ftp_connect | int ftp_connect ( string host [, int port]) host: Nombre o IP de Servidor FTP. port: Puerto, por defecto 21. |
Establece una conexión FTP al host especificado. |
ftp_login | int ftp_login( int ftp_stream, string username, string password) ftp_stream: Manejador FTP obtenido con ftp_connect. username: Nombre de usuario. password: constraseña de usuario. |
Comienza la sesion en una conexión FTP. |
ftp_pasv | int ftp_pasv ( int ftp_stream, int pasv) ftp_stream: Manejador FTP obtenido con ftp_connect. pasv: Si es TRUE activa el modo pasivo, si es FALSE lo desactiva. |
Activa o desactiva el modo pasivo. En modo pasivo, las conexiones de datos son iniciadas por el cliente, en lugar de ser iniciadas por el servidor. |
ftp_pwd | int ftp_pwd ( int ftp_stream) ftp_stream: Manejador FTP obtenido con ftp_connect. |
Devuelve el nombre del directorio actual. |
ftp_put | int ftp_put ( int ftp_stream, string remote_file, string local_file, int mode) ftp_stream: Manejador FTP obtenido con ftp_connect. remote_file: Nombre con el cual se guardará el archivo en el Servidor FTP. local_file: Archivo local que se encuentra en la máquina cliente. mode: Modo de transferencia, puede ser FTP_ASCII o FTP_BINARY. |
Sube un fichero al Servidor FTP. |
ftp_nlist | int ftp_nlist ( int ftp_stream, string directory) ftp_stream: Manejador FTP obtenido con ftp_connect. directory: Ruta del directorio a listar. |
Devuelve una lista de ficheros del directorio dado. |
ftp_size | int ftp_size ( int ftp_stream, string remote_file) ftp_stream: Manejador FTP obtenido con ftp_connect. remote_file: Nombre del archivo en el Servidor FTP. |
Devuelve el tamaño del fichero especificado. No todos los servidores soportan esta característica. |
ftp_mdtm | int ftp_mdtm ( int ftp_stream, string remote_file) ftp_stream: Manejador FTP obtenido con ftp_connect. remote_file: Nombre del archivo en el Servidor FTP. |
Devuelve la fecha de última modificación del fichero especificado. No todos los servidores soportan esta característica |
ftp_quit | int ftp_quit ( int ftp_stream) ftp_stream: Manejador FTP obtenido con ftp_connect. |
Cierra una conexión FTP |
Nota: Debe asegurarse que se encuentren habilitadas las funciones ftp en la configuración de la version de PHP que posee y de tener los permisos necesarios en su cuenta FTP para subir y bajar archivos. |
CODIGO FUENTE.
/inc/ftpfunc.php.
Script que contendrá las constantes y funciones a usar en index.php. En este script deberá modificar los valores de las constantes para ajustarlo a sus necesidades. La función ConectarFTP le permitirá conectarse al Servidor FTP; la función SubirArchivo tiene la tarea de subir un archivo al Servidor; y finalmente, la función ObtenerRuta le otorgará la ruta del directorio actual en el cual está trabajando el Servidor.
<? # FUNCIONES FTP # CONSTANTES function ConectarFTP(){ function SubirArchivo($archivo_local,$archivo_remoto){ function ObtenerRuta(){ |
index.php.
Script que contiene un formulario (form_ftp) que nos permite buscar un archivo y subirlo al Servidor FTP, además nos muestra una lista de los directorios y archivos del mismo.
<?php echo "<?xml version="1.0" encoding="iso-8859-1"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>::..Funciones FTP..::</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <? <!--Formulario para elejir el archivo a subir --> <hr /> |
Bueno, espero que éste aporte a al Comunidad Web les haya sido de utilidad, cualquier duda o sugerencia no duden en hacermesla llegar. Saludos.
William Wong Garay
Profesional en Computación e Informatica. Especialista en desarrollo web.