Java

Cliente FTP en Java

En este tutorial aprenderemos a crear un cliente FTP en Java utilizando las librerías que nos proporciona Apache Commons.

De esta forma lo primero que debemos hacer es descargarnos la librería desde el sitio oficial: http://commons.apache.org/proper/commons-net/download_net.cgi. Luego debemos importar el commons-net-3.3.jar como dependencia en nuestro proyecto. Si estamos utilizando Eclipse como IDE podemos hacer click derecho en nuestro proyecto e ir a “Properties -> Java Build Path -> Libraries -> Add External JARs” y seleccionar el archivo JAR descargado. Es importante mencionar que en nuestro caso estamos usando la versión 3.3.

¿Cómo crear un cliente FTP en Java?

Para realizar esto primero debemos importar la librería en nuestro proyecto:

import org.apache.commons.net.ftp.FTPClient;

Luego podemos instanciar nuestro objeto FTPClient para poder conectarnos a nuestro servidor FTP:

import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;

public class ClienteFTP {

	public static void main(String[] args) {

		// Creando nuestro objeto ClienteFTP
		FTPClient client = new FTPClient();

		// Datos para conectar al servidor FTP
		String ftp = "ftp.miservidor.com"; // También puede ir la IP
		String user = "usuario";
		String password = "password";

		try {
			// Conactando al servidor
			client.connect(ftp);

			// Logueado un usuario (true = pudo conectarse, false = no pudo
			// conectarse)
			boolean login = client.login(user, password);

			// Cerrando sesión
			client.logout();

			// Desconectandose con el servidor
			client.disconnect();

		} catch (IOException ioe) {

		}
	}
}

¿Cómo subir un archivo por FTP en Java?

Ahora si queremos subir un archivo tenemos que utilizar el método storeFile del objeto FTPClient. A continuación el código completo:

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;

public class ClienteFTP {

	public static void main(String[] args) {

		// Creando nuestro objeto ClienteFTP
		FTPClient client = new FTPClient();

		// Datos para conectar al servidor FTP
		String ftp = "ftp.miservidor.com"; // También puede ir la IP
		String user = "usuario";
		String password = "password";

		try {
			// Conactando al servidor
			client.connect(ftp);

			// Logueado un usuario (true = pudo conectarse, false = no pudo
			// conectarse)
			boolean login = client.login(user, password);

			client.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
			client.setFileTransferMode(FTP.BINARY_FILE_TYPE);
			client.enterLocalPassiveMode();

			String filename = "miarchivo.txt";

			FileInputStream fis = new FileInputStream(filename);

			// Guardando el archivo en el servidor
			client.storeFile(filename, fis);

			// Cerrando sesión
			client.logout();

			// Desconectandose con el servidor
			client.disconnect();

		} catch (IOException ioe) {
			System.out.println(ioe.getMessage());
		}
	}
}

Con el código anterior podemos conectarnos a un servidor FTP y subir un archivo.

Bueno gente, hemos llegado al final de este tutorial espero que les sea de gran utilidad, ante cualquier problema no duden en dejar un comentario.

Compartilo en
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestEmail this to someone

AboutJosé Di Meglio

Apasionado de la tecnología y programación. Aportando información gratuita sobre el mundo de la informática.

5 comments

  1. el servidor me da un error:
    (000013)19/07/2016 15:56:00 p.m. – img_kts (192.168.1.71)> 550 Filename invalid

    Quiero suponer que se debe a que al subir un archivo no estoy poniendo la ruta de dónde quiero que se suba.

    Si esta es la causa del error ¿cómo puedo dar un path al cliente FTP? o si no es la causa ¿Cuál podría ser?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *