En los programas de Java, a menudo debe tratar con FTP, como cargar y descargar archivos al servidor FTP. Este artículo presenta brevemente cómo usar el FTPClient en Yakarta Commons (en el paquete Commons-Net) para cargar y descargar archivos.
Los paquetes de jares utilizados son:
Commons-net-1.4.1.Jar
jakarta-oo.jar
1. Cargar archivos
File de carga de archivo Código de origen/*** Descripción: Subir el archivo en el servidor FTP* @versión1.0* @param url ftp servidor hostname* @param puerto ftp puerto del servidor* @param username ftp cuenta de inicio de sesión* @param contraseña ftp contraseña de inyección* @param stater ftp servidor guarda directorio* @param filename filename subido al revés del servidor ftp* @Param toping* @Param Entrada* @Param Entrada de entrada* @Param Entrada* @Param Entrada* @Param Entrada* @Param Entrada* @Param TIEPT con éxito, de lo contrario, falso */public static boolean uploadFile (string url, // ftp servidor hostname int puerto, // ftp servidor puerto string string username, // ftp registre de la cuenta de la cuenta de la cuenta, // ftp registrar contraseña de contraseña de cadena ruta de cadena, // ftp servidor guarda el archivo de directorio file fileName, // cargar el servidor ftp input input // stream) {boolean {FALSES -FALSEAN = FALSEMEAN = FALSE = FALSE SCORTO = FALSE) FtpClient ftp = new ftpClient (); intente {int respuesta; ftp.connect (url, puerto); // Conecte el servidor FTP // Si se usa el puerto predeterminado, puede conectarse directamente al servidor FTP por ftp.connect (URL); ftp.login (nombre de usuario, contraseña); // Iniciar respuesta = ftp.getReplyCode (); if (! ftPreply.ispositiveCompletion (respuesta)) {ftp.disconnect (); devolver el éxito; } ftp.changeworkingDirectory (ruta); ftp.storeFile (nombre de archivo, entrada); input.close (); ftp.logout (); éxito = verdadero; } catch (ioException e) {E.PrintStackTrace (); } finalmente {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException IOE) {}} return éxito; } Aquí están los casos de prueba para la carga de archivos:
/*** Sube archivos locales en el servidor FTP**/public void testuploadFromDisk () {try {FileInputStream in = new FileInputStream (nuevo archivo ("d: /test.txt")); Boolean Flag = uploadFile ("127.0.0.1", 21, "administrador", "zyuc2011", "test", "test.txt", in); System.out.println (bandera); } catch (FileNotFoundException e) {E.PrintStackTrace (); }} / ** * Genere un archivo en el servidor FTP y escriba una cadena en el archivo * * / public void testUploadFromString () {try {String str = "Esta es la cadena a escribir!"; InputStream Input = new ByteArrayInputStream (str.getBytes ("UTF-8")); Boolean Flag = uploadFile ("127.0.0.1", 21, "administrador", "zyuc2011", "test", "test.txt", entrada); System.out.println (bandera); } catch (UnsupportedEncodingException e) {E.PrintStackTrace (); }} 2. Descarga de archivo <Br /> Código fuente de descarga de archivos
/*** Descripción: Descargue el archivo desde el servidor FTP* @versión1.0* @param url ftp servidor hostname* @param puerto ftp servidor puerto* @param username ftp cuenta de inicio de sesión* @param contraseña ftp contraseña de registro* @param remotepath ruta relativa relativa */public static Boolean Downfile (String Url, // Ftp Server HostName int Port, // FTP Server Port String String UserName, // ftp Login Cuenta String String Contraseña de cadena, // ftp Ingangin Password String RemotePath, // ruta relativa en la ruta relativa en la cadena FTP FileNename, // File Nombre de archivo que se descarga String Localpath // Path guardado en el local Aftersing Descargue) FtpClient ftp = new ftpClient (); intente {int respuesta; ftp.connect (url, puerto); // Si se usa el puerto predeterminado, puede conectarse directamente al servidor FTP usando ftp.connect (url); ftp.login (nombre de usuario, contraseña); // Iniciar respuesta = ftp.getReplyCode (); if (! ftPreply.ispositiveCompletion (respuesta)) {ftp.disconnect (); devolver el éxito; } ftp.changeworkingDirectory (remotePath); // transferir al directorio del servidor FTP ftpfile [] fs = ftp.listFiles (); for (ftpfile ff: fs) {if (ff.getName (). Equals (FileName)) {file localFile = new File (localpath+"/"+ff.getName ()); OutputStream es = nuevo FileOutputStream (LocalFile); ftp.retrieveFile (ff.getName (), is); is.close (); }} ftp.logout (); éxito = verdadero; } catch (ioException e) {E.PrintStackTrace (); } finalmente {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException IOE) {}} return éxito; } Aquí están los casos de prueba para la descarga de archivos:
/** * Descargue el archivo en el servidor FTP al local * */public void testdownFile () {try {boolean flag = downfile ("127.0.1", 21, "administrador", "zyuc2011", "test", "test.txt", "d:/"); System.out.println (bandera); } catch (Exception e) {E.PrintStackTrace (); }}Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.