Quobit

Cultura Digital, Tutoriales, tecnología y gadgets

¿Cómo hacer una conexión FTP por medio de PHP?

FTP

Continuando con algunas memorias sobre la programación en PHP les comparto este pequeño tutorial que nos enseña a crear una conexión FTP por medio de PHP.

Script muy útil cuando necesitamos iniciar sesión en un servidor remoto. Pero vayamos por partes.

¿Qué es una conexión FTP?

FTP corresponde a las siglas de File Transfer Protocol o Protocolo de Transferencia de Archivos. Cómo su propio nombre lo indica, es un protocolo que pertenece 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. El cual se encarga de conectarse a un servidor FTP para descargar o subir archivos.
  •     Un servidor. Se encarga de procesar las peticiones de los clientes FTP, permitiéndoles descargar o subir archivos desde él.

Para conectarnos a un servidor FTP necesitaremos los siguientes datos:

  •     Nombre del Servidor. Es la IP o Nombre del Servidor FTP al cual nos conectaremos
  •     Puerto. Número del puerto del servidor. Por defecto es 21.
  •     Usuario. Es el nombre de la cuenta de usario que se nos ha asignado.
  •     Clave de acceso. Es nuestra contraseña de cuenta de usuario.

¿Cómo conectarte por PHP a un servidor FTP?

Si quiere el detalle de todas las funciones disponibles para PHP te aconsejo consultar la documentación oficial del PHP, disponible en: http://www.php.net/docs.php.

$conexion_id = ftp_connect($ip_servidor); // creamos un ID de conexión al servidor

$resultado = ftp_login($conexion_id,’usuario’,’password’); // iniciamos sesion con usuario y contraseña

if((!$conexion_id) || (!$resultado)){

die(«Falló la conexión»);

}

else

{

//Si se inició sesion, cambiamos a modo pasivo (Las conexiones de datos son iniciadas por el cliente, en lugar de por el servidor. Puede ser necesaria si el cliente está detrás de un firewall)

ftp_pasv($conexion_id, true);

$remoto = $path . «archivo.txt»; // Indicamos la ruta y el nombre del archivo a transmitir

$local = «archivo.txt»; // Este es el nombre del archivo que vamos a mandar al servidor
$archivo_enviado = ftp_put( $conexion_id, $local, $remoto, FTP_BINARY ); //subimos el archivo al servidor en modo binario

if ( $archivo_enviado ) {

echo «archivo subido»;

}

else {

echo «No se pudo enviar el archivo «;

}

}

//Y por ultimo cerramos la conexión FTP

ftp_close($conexion_id);