Subir archivos a un servidor via FTP en Java

Subir archivos a un servidor via FTP en Java

Muchas veces en el desarrollo de un software a la medida es necesario conectar a un servidor para subir archivos o cualquier otra cosa, hoy veremos cómo subir archivos a un servidor via FTP en Java mediante un sencillo ejemplo paso a paso de lo que tenemos que hacer.

Hace tiempo en el desarrollo de un software a la medida en Java tuve la necesidad de conectar via FTP a un servidor para subir documentos PDF.

El sistema en sí era para la gestión de cotizaciones para una empresa de motores, por supuesto un sistema así requiere almacenar las cotizaciones en formato PDF.

Los documentos se tenían que subir a una determinada carpeta en su servidor y el proceso de subida no debería de detener el flujo del programa.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

Una vez que conocemos un poco la historia de la situación en la que estaba vamos a ver cómo conectarnos via FTP en Java a un servidor y subir un archivo.

Antes que nada necesitamo importar la librería de ftp4j en nuestro proyecto.

La podemos descargar desde este enlace:

http://www.sauronsoftware.it/projects/ftp4j/

Debemos crear nuestro objeto de conexión.

FTPClient client;

Y posteriormente debemos conectarnos a nuestro servidor FTP.

try{
    client = new FTPClient();
    client.connect("[Dirección del servidor]");
    client.login("[usuario]", "[contraseña]");
    client.setPassive(true);
    client.setType(FTPClient.TYPE_BINARY);
    client.changeDirectory("public_html/otracarpeta/otra/");
}catch(Exception err){
    System.out.println("ERROR: "+err.getLocalizedMessage());
}

Aquí lo que hacemos es inicializar nuestro objeto de conexión.

Conectamos a nuestro servidor mediante su IP o nombre de dominio.

Nos logueamos mediante usuario y contraseña, asegurate de que estos datos sean correctos.

Establecemos nuestra conexión a pasiva y el tipo de conexión a binaria.

Inmediatamente despues nos cambiamos de directorio a la ubicación donde subiremos nuestro archivo.

Para comenzar la subida de un determinado archivo al servidor en la ruta establecida nos apoyaremos de un SwingWorker.

new SwingWorker<Double, String>() {
            @Override
            protected Double doInBackground() throws Exception { 
               try {
                    File archivo = new File("[ruta de archivo]");
                    InputStream is = new FileInputStream(archivo);
                    client.upload(nombre, is,0,0,new FTPDataTransferListener() {
                        @Override
                        public void started() {
                            System.out.println("El archivo ha iniciado su subida "+nombre);
                        }

                        @Override
                        public void transferred(int i) {
                            //System.out.println("El archivo ha transferido su subida "+nombre);
                        }

                        @Override
                        public void completed() {
                            System.out.println("El archivo ha completado su subida "+nombre);
                        }

                        @Override
                        public void aborted() {
                            System.out.println("El archivo ha abortado su subida "+nombre);
                        }

                        @Override
                        public void failed() {
                            System.out.println("El archivo ha fallado su subida "+nombre);
                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    client.disconnect(true);
                }
            }
            
            @Override
            protected void done() {}
        }.execute();

Y eso es todo!

En mi caso yo agregé una interfaz de usuario para cuando un archivo se estuviera subiendo no interviniera en el proceso del programa pero lo he limpiado para que ustedes solo puedan ver el codigo necesario para la funcionalidad.

Si este codigo sobre cómo subir archivos a un servidor via FTP en Java te fue de utilidad no olvides compartirlo en tus redes sociales y dejarnos un comentario en la sección de abajo si tienes cualquier duda al respecto de este tema, será un placer ayudarte.

¡Hasta luego!

Clic para valorar esta información
[Total: 3 Promedio: 5]

0 Comentarios

Sin comentarios aún!

Tu puedes ser el primero en comentar este post!

Deja un comentario

Tu comentario será aprobado por un administrador en unos minutos, por favor no publiques de nuevo tu comentario.