En esta oportunidad crearemos una pequeña plicacion para lanzar comandos a un servidor ftp, el caso es que debemos tener el nombre del servidor, el nombre de usuario, la clave de la conexión.
Para empezar debemos descargar las librerias JvFTP creadas por Bea Petrovicova, las podemos descargar desde http://jvftp.sourceforge.net/.
Teniendo las librerias agregadas a nuestro proyecto tenemos unos ejemplos de codificación;
* Las declaramos en el documento:
import java.io.IOException; import cz.dhl.io.*; import cz.dhl.ftp.*;
* Creamos la variable de tipo ftp para ejecutar la conexión:
FtpConnect cn = FtpConnect.newConnect("ftp://ftp.dominio.com");
donde el dominio "//ftp.dominio.com" corresponde al ftp que
tengas para la conexión:
* Ahora creamos el inicio de sesión:
// se ingresa el usuario cn.setUserName("usuario"); // se ingresa la contraseña cn.setPassWord("contraseña");
* Ahora creamos un objeto de tipo ftp para ejecución de comandos y
para que nos muestre toda la información del ftp:
Ftp cl = new Ftp();
* Ahora establecemos la conexión al ftp:
cl.connect(cn);
* Ahora para mostrar la informacion del ftp y directorios listados podemos
utilizar el siguiente codigo:
CoFile dir = new FtpFile(cl.pwd(), cl); // hacer una lista de archivos que tiene el directoria actual CoFile fls[] = dir.listCoFiles(); if ( fls != null ) for (int n = 0; n < fls.length; n++) System.out.println( fls[n].getName() +
(fls[n].isDirectory() ? "/" : ""));
* Para subir y bajar archivos:
//subir
try { URL url = new URL("ftp://"+user+":"+pass+"@"+server+remotePath+";type=i"); URLConnection urlc = url.openConnection(); OutputStream os = urlc.getOutputStream(); BufferedReader br = new BufferedReader(new FileReader(localPath)); int c; while ((c = br.read()) != -1) { os.write(c); } os.flush(); os.close(); br.close(); return true; } catch (Exception ex) { ex.printStackTrace(); return false; }
//bajar
try { URL url = new URL("ftp://" + user + ":" + pass + "@" + server + remotePath + ";type=i"); URLConnection urlc = url.openConnection(); InputStream is = urlc.getInputStream(); BufferedWriter bw = new BufferedWriter(new FileWriter(localPath)); int c; while ((c = is.read()) != -1) { bw.write(c); } is.close(); bw.flush(); bw.close(); return true; } catch (Exception ex) { ex.printStackTrace(); System.out.println(ex.getMessage()); return false; }
* Para finalizar el codigo para desconectarnos del servidor ftp:
cl.disconnect();
* Para descargar el proyecto con sus fuentes: FTP en Java
Deja tu comentario o agradecimiento.
MIL GRACIAS POR EL EJEMPLO AMIGO,POR FAVOR POSTEA UN EJEMPLO DE COMO SUBIR ARCHIVOS A UN SERVIDOR GRACIAS SIGUE ASI
ResponderEliminarBueno acabo de adicionarle las funciones de subir y bajar archivo ajala te sirva... Saludos
ResponderEliminarHola
ResponderEliminarDisculpa y por ejemplo en el caso de que no kiera usar la libreria que especificas como lo haria??? tendria que hacer un metodo para la conexion y especificar el puerto a utilizar
Hola lo que planteas si es posible, pero resulta que esta libreria fue creada precisamente para ahorra trabajo ya que no solo tendríamos que establecer puertos ip hay que hacer una clase completa para que el programa interactue cvorrectamente con el servidor...
ResponderEliminarHola, el archivo que pusistes es solo el ejecutable, por favor podrias enviarme los archivos fuentes para estudiarlo.
ResponderEliminarSaludos
Hola a todos, Tengo un problema con las carpeta del FTP que llevan Acentos o la letra "Ñ"?? no me funciona la librería que solución existe para estos casos??
ResponderEliminarSaludos