FTP est l'abréviation anglaise du protocole de transfert de fichiers (protocole de transfert de fichiers), et l'abréviation chinoise est appelée "protocole de transfert écrit". Utilisé pour le transfert bidirectionnel des fichiers de contrôle sur Internet. Dans le même temps, c'est aussi une application. Il existe différentes applications FTP basées sur différents systèmes d'exploitation, et toutes ces applications adhèrent au même protocole pour transférer des fichiers. Dans l'utilisation de FTP, les utilisateurs rencontrent souvent deux concepts: "télécharger" et "télécharger". Les fichiers "Télécharger" signifient la copie de fichiers de l'hôte distant vers votre propre ordinateur; Les fichiers "Téléchargement" signifient la copie des fichiers de votre propre ordinateur vers l'hôte distant. Dans la langue Internet, les utilisateurs peuvent télécharger des fichiers (télécharger) sur (depuis) des hôtes distants via des programmes clients.
Tout d'abord, Serv-U a été téléchargé pour configurer votre ordinateur en tant que serveur de fichiers FTP pour une opération facile. Le code suivant est utilisé dans le serveur FTP et les données pertinentes de la connexion FTP doivent être écrites dans le code pour la compléter.
1. Téléchargez et téléchargez des fichiers FTP (notez qu'il est téléchargé et télécharger des fichiers individuels)
import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileoutStream; importer java.io.ioexception; import java.io.inputstream; org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpfile; import org.apache.commons.net.ftp.ftpreply; / ** * implémenter FTP Fichier Téléchargement et téléchargement de fichiers * / public class FTPAPCHE {private static ftpclient ftpclEn = new FTPClient (private static ftpclient ftpclUn = new FTPCLIENT (); Encoding de chaîne statique privée = System.getProperty ("file.encoding"); / ** * Description: Téléchargez des fichiers sur le serveur FTP * * @ version1.0 * @param URL * FTP Server hostname * @param port * FTP Server Port * @param nom d'utilisateur * FTP Compte de connexion * @param mot de passe * FTP Login Password * @param pathy * FTP Server Directory, If It Is the Root Directory, c'est "/" * * @Param Firename * File Nom de Nom pour le divery FTP Server * @param entrée * Stream d'entrée de fichier local * @return renvoie True avec succès, sinon il renverra False * / public static boolean uploadfile (URL de chaîne, port int, nom d'utilisateur de chaîne, mot de passe de chaîne, chemin de chaîne, nom de fichier de chaîne, entrée InputStream) {booléen result = false; essayez {int réponse; // Si vous utilisez le port par défaut, vous pouvez vous connecter directement au serveur FTP ftpClient.connect (URL); // ftp.connect (URL, port); // Connectez le serveur FTP // Connectez-vous à ftpclient.login (nom d'utilisateur, mot de passe); ftpClient.setControleCcoding (codage); // Vérifiez que la connexion est une réponse réussie = ftpClient.getReplyCode (); if (! ftpreply.ispositivecompletion (réponse)) {System.out.println ("Connexion Échec"); ftpClient.disconnect (); Résultat de retour; } // Transférer le répertoire de travail vers le répertoire spécifié Boolean Change = ftpClient.changeworkingDirectory (path); ftpClient.setFileType (ftp.binary_file_type); if (modifier) {result = ftpclient.storefile (new String (filename.getBytes (Encoding), "ISO-8859-1"), entrée); if (result) {System.out.println ("Téléchargé avec succès!"); }} input.close (); ftpClient.logout (); } catch (ioException e) {e.printStackTrace (); } enfin {if (ftpclient.isconnected ()) {try {ftpClient.disconnect (); } catch (ioException ioe) {}}} Retour Result; } / ** * Téléchargez les fichiers locaux sur le serveur FTP * * / public void TESTUPLOADFROMDISK () {try {fileInputStream dans = new FileInputStream (nouveau fichier ("d: /test02/list.txt")); booléen flag = uploadfile ("10.0.0.102", 21, "admin", "123456", "/", "lis.txt", in); System.out.println (drapeau); } catch (filenotFoundException e) {e.printStackTrace (); }} / ** * Description: Téléchargez le fichier à partir du serveur FTP * * @ version1.0 * @param url * FTP Server Hostname * @param port * FTP Server Port * @param username * FTP Login Compte * @param mot de passe * FTP Mot de passe de connex à local après téléchargement * @return * / public static boolean downfile (URL de chaîne, port int, nom d'utilisateur de chaîne, mot de passe de chaîne, string remotepath, nom de file, string localPath) {booléen result = false; essayez {int réponse; ftpClient.setControleCcoding (codage); / * * Afin de télécharger et de télécharger des fichiers chinois, certains endroits recommandent d'utiliser les deux phrases suivantes au lieu de * Nouvelle chaîne (Remotepath.getBytes (Encoding), "ISO-8859-1"). * Après les tests, il ne peut pas être passé. * /// ftpclientconfig conf = new ftpclientconfig (ftpclientconfig.syst_nt); // conf.setserverlanguagecode ("zh"); ftpClient.connect (URL, port); // Si le port par défaut est utilisé, vous pouvez vous connecter directement au serveur FTP par ftpclient.login (nom d'utilisateur, mot de passe); // Login // Définissez le type de transfert de fichier sur binaire ftpclient.setFileType (ftpclient.binary_file_type); // Obtenez le code de réponse de connexion FTP Répondre = ftpClient.getReplyCode (); // Vérifiez que la connexion est réussie si (! Ftpreply.ispositivecompletion (réponse)) {ftpClient.disconnect (); System.err.println ("FTP Server Refused Connection."); Résultat de retour; } // Transférer vers le répertoire FTP Server vers le répertoire spécifié ftpClient.changeworkingDirectory (nouvelle chaîne (RemotePath.getBytes (Encoding), "ISO-8859-1")); // obtient la liste de fichiers ftpfile [] fs = ftpclient.listFiles (); for (ftpfile ff: fs) {if (ff.getName (). equals (fileName)) {file localfile = new file (localPath + "/" + ff.getName ()); OutputStream est = new FileOutputStream (localFile); ftpClient.RetReeveFile (ff.getName (), IS); is.close (); }} ftpclient.logout (); résultat = true; } catch (ioException e) {e.printStackTrace (); } enfin {if (ftpclient.isconnected ()) {try {ftpClient.disconnect (); } catch (ioException ioe) {}}} Retour Result; } / ** * Téléchargez le fichier sur le serveur FTP vers le TestDownfile de TestDown (Public void Public * / Public Void () {try {boolean flag = downfile ("10.0.0.102", 21, "admin", "123456", "/", "ip.txt", "e: /"); System.out.println (drapeau); } catch (exception e) {e.printStackTrace (); }} public static void main (string [] args) {ftpapche fa = new ftpapche (); fa.TestdownFile (); fa.TestuploadFromDisk (); }}2. Téléchargez et téléchargez des dossiers FTP (notez que le dossier entier est le dossier entier)
Package FTP; Importer Java.io.BufferedInputStream; Importer Java.io.BufferedoutputStream; Importer java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; Importer java.io.fileOutStream; import java.io.ioexception; import java.util.tiltils org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpclientconfig; import org.apache.commons.net.ftp.ftpfile; import org.apache.commons.net.ftp.ftpreply; import Org.apache.log4j.logger; classe publique FTptest_04 FtpClient ftpClient; bande de chaîne privée; INT PRIVÉ INTPORT; utilisateur de chaîne privée; mot de passe de chaîne privé; Logger statique privé = logger.getLogger (ftPTest_04.class.getName ()); / * * * FTP Constructor * / public ftPTest_04 (String Strip, int intport, String User, String Motword) {this.strip = strip; this.intport = intport; this.user = utilisateur; this.password = mot de passe; this.ftpclient = new ftpClient (); } / ** * @return Déterminez si la connexion réussit * * / booléen public ftplogin () {boolean islogin = false; FtpClientConfig ftpClientConfig = new ftpClientConfig (); ftpClientConfig.SetServerTimeZoneId (Timezone.getDefault (). GetId ()); this.ftpclient.setControleCcoding ("gbk"); this.ftpclient.configure (ftpClientConfig); essayez {if (this.intport> 0) {this.ftpclient.connect (this.strip, this.intport); } else {this.ftpclient.connect (this.strip); } // Ftp Server Connection Réponse int Reply = this.ftpClient.getReplyCode (); if (! ftpreply.ispositivecompletion (réponse)) {this.ftpclient.disconnect (); Logger.Error ("Connexion au service FTP a échoué!"); retour Islogin; } this.ftpclient.login (this.user, this.password); // Définit le protocole de transmission this.ftpclient.enterLocalPassiVemode (); this.ftpclient.setFileType (ftpclient.binary_file_type); Logger.info ("Félicitations" + this.User + "Connexion avec succès au serveur FTP"); islogin = true; } catch (exception e) {e.printStackTrace (); Logger.Error (this.User + "Connexion au service FTP a échoué!" + e.getMessage ()); } this.ftpclient.setBuffeSize (1024 * 2); this.ftpclient.setDatatimeout (30 * 1000); retour Islogin; } / ** * @Exit Close Server Link * * / public void ftplogout () {if (null! = This.ftpclient && this.ftpclient.isconnected ()) {try {boolean reuslt = this.ftpclient.logout (); // quitter le serveur ftp if (reuslt) {logger.info ("" }} catch (ioException e) {e.printStackTrace (); Logger.Warn ("Exception de la sortie du serveur FTP!" + e.getMessage ()); } enfin {try {this.ftpclient.disconnect (); // Fermez la connexion avec le serveur FTP} catch (ioException e) {e.printStackTrace (); Logger.Warn ("Exception de la fermeture de la connexion du serveur FTP!"); }}}}} / *** * Téléchargez le fichier FTP * @param Fichier local local local * @param RomotuploadEpath Upload Server Path - devrait se terminer avec / * * / public boolean uploadfile (fichier localfile, string romotuploadEpath) {BufferedInputStream instream = null; Booléen Success = False; essayez {this.ftpclient.changeworkingDirectory (RomotuploadEpath); // modifie le chemin de travail Instream = new BufferedInputStream (new FileInputStream (localfile)); logger.info (localFile.getName () + "start upload ..."); Success = this.ftpclient.storefile (localfile.getName (), insimec); if (Success == true) {logger.info (localFile.getName () + "Uploaded Success"); retourner le succès; }} catch (filenotFoundException e) {e.printStackTrace (); Logger.Error (localfile + "non trouvé"); } catch (ioException e) {e.printStackTrace (); } enfin {if (insiteam! = null) {try {insiteam.close (); } catch (ioException e) {e.printStackTrace (); }}} Retour Success; } / *** * Télécharger le fichier * @Param RemoteFileName Nom du fichier à télécharger * @param localdires Télécharger sur le chemin local * @param RemotedownloadPath le chemin où se trouve RemoteFilename, * * / public boolean downloadfile (string strfilePath = localDires + toteFilleName; BufferedOutputStream outstream = null; Booléen Success = False; essayez {this.ftpclient.changeworkingDirectory (RemotedownloadPath); outstream = new BufferedOutputStream (new FileOutputStream (strFilePath)); Logger.info (RemoteFileName + "Démarrer Télécharger ..."); Success = this.ftpClient.RetReeveFile (RemoteFileName, Outstream); if (Success == true) {Logger.info (RemoteFileName + "Téléchargé avec succès sur" + strFilePath); retourner le succès; }} catch (exception e) {e.printStackTrace (); Logger.Error (RemoteFileName + "Download a échoué"); } enfin {if (null! = outstream) {try {outstream.flush (); outstream.close (); } catch (ioException e) {e.printStackTrace (); }}} if (Success == false) {Logger.Error (RemoteFileName + "Download a échoué !!!"); } Retour succès; } / *** * @upload Folder * @param localDirectory * Folder local * @param RemoteDirectoryPath * Le chemin du serveur FTP se termine par le répertoire "/" * * / public boolean uploadDirectory (String localDirectory); essayez {RemoteDirectoryPath = RemoteDirectoryPath + src.getName () + "/"; booléen makedirflag = this.ftpclient.makedirectory (RemoteDirectoryPath); System.out.println ("localDirectory:" + localDirectory); System.out.println ("RemoteDirectoryPath:" + RemoteDirectoryPath); System.out.println ("src.getName ():" + src.getName ()); System.out.println ("RemoteDirectoryPath:" + RemoteDirectoryPath); System.out.println ("Makedirflag:" + Makedirflag); // ftpclient.listDirectories (); } catch (ioException e) {e.printStackTrace (); Logger.info (RemoteDirectoryPath + "Création de répertoire a échoué"); } File [] allFile = src.ListFiles (); for (int currentFile = 0; currentFile <allFile.Length; currentFile ++) {if (! allFile [currentFile] .isDirectory ()) {String srcname = allFile [currentFile] .getPath (). toString (); uploadFile (nouveau fichier (srcname), RemoteDirectoryPath); }} pour (int currentFile = 0; currentFile <allFile.length; currentFile ++) {if (allFile [currentFile] .isDirectory ()) {// Recursive uploadDirectory (AllFile [currentFile] .getPath (). ToString (), remoteDirectoryPath); }} return true; } / *** * @Download Folder * @param localDirectoryPath Adresse locale * @param RemoteDirectory Remote Folder * * / public boolean downloadDirectory (String localDirectoryPath, String RemoteDirectory) {try {String FileName = new File (RemoteDirectory) .getName (); localDirectoryPath = localDirectoryPath + FileName + "//"; nouveau fichier (localDirectoryPath) .mkDirs (); Ftpfile [] allFile = this.ftpclient.listFiles (RemoteDirectory); for (int currentFile = 0; currentFile <allFile.length; currentFile ++) {if (! allFile [currentFile] .isDirectory ()) {téléchargement de téléchargement (AllFile [currentFile] .GetName (), localDirectoryPath, RemoteDirectory); }} pour (int currentFile = 0; currentFile <allFile.Length; currentFile ++) {if (allFile [currentFile] .isDirectory ()) {String strreMoteDirectoryPath = RemoteDirectory + "/" + allFile [currentFile] .getName (); DownloadDirectory (localDirectoryPath, strremoDirectoryPath); }}} catch (ioException e) {e.printStackTrace (); Logger.info ("Folder de téléchargement a échoué"); retourne false; } return true; } // ftpclient set and obstat functions public ftpclient getftpclient () {return ftpClient; } public void setftpClient (ftpclient ftpClient) {this.ftpclient = ftpClient; } public static void main (String [] args) lève ioException {ftPTest_04 ftp = new ftPTest_04 ("10.0.0.102", 21, "admin", "123456"); ftp.ftPlogin (); System.out.println ("1"); // Télécharger le dossier boolean uploadFlag = ftp.uploadDirectory ("d: // test02", "/"); // S'il s'agit d'administration /, tous les fichiers sont passés. S'il est juste /, alors il est transmis sur le dossier System.out.println ("uploadFlag:" + uploadFlag); // Télécharger le dossier ftp.downloadDirectory ("d: // tm", "/"); ftp.ftPlogout (); }}Ce qui précède est tout le contenu de cet article. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun. J'espère également soutenir plus Wulin.com!