FTP ist die englische Abkürzung des Dateitransferprotokolls (Dateitransferprotokoll), und die chinesische Abkürzung wird als "schriftliches Transferprotokoll" bezeichnet. Wird für die bidirektionale Übertragung von Steuerdateien im Internet verwendet. Gleichzeitig ist es auch eine Anwendung. Es gibt verschiedene FTP -Anwendungen, die auf verschiedenen Betriebssystemen basieren, und alle diese Anwendungen halten an demselben Protokoll zum Übertragungsdateien ein. Bei der Verwendung von FTP begegnen Benutzer häufig zwei Konzepte: "Download" und "Upload". "Download" -Dateien bedeutet, Dateien vom Remote -Host auf Ihren eigenen Computer zu kopieren. "Hochladen" Dateien bedeutet, Dateien von Ihrem eigenen Computer auf den Remote -Host zu kopieren. In der Internetsprache können Benutzer Dateien auf (von) Remote -Hosts über Client -Programme hochladen ().
Erstens wurde Serv-U heruntergeladen, um Ihren Computer als FTP-Dateiserver für den einfachen Betrieb einzurichten. Der folgende Code wird auf dem FTP -Server verwendet, und die relevanten Daten der FTP -Verbindung müssen in den Code geschrieben werden, um sie abzuschließen.
1. Laden Sie FTP -Dateien hoch und laden Sie sie herunter (Beachten Sie, dass einzelne Dateien hochgeladen und heruntergeladen werden).
importieren java.io.file; import java.io.fileinputstream; import Java.io.filenotFoundException; importieren Sie Java.io.FileOutputStream; Java.io.ioException importieren Java.io.io.inputstream; Import Java.io.outputStream; ImportputStream; Import Stream; import; org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpfile; private statische Zeichenfolge coding = system.getProperty ("file.encoding"); /** * Beschreibung: Laden Sie Dateien auf den FTP -Server hoch * * @Version1.0 * @param url * ftp Server Hostname * @param port * FTP -Server -Port * @param userername * ftp login -Konto * @param -Passwort * FTP -Login -Passwort * @Param Path * FTP -Server. FTP -Server * @param Eingabe * Lokaler Dateieingangsstrom * @Return Return True erfolgreich, ansonsten wird falsch */ public static boolean uploadfile (String -URL, int Port, String -Benutzername, String -Kennwort, String -Pfad, String -Dateiname, InputStream -Eingabe) {boolean result = false; Versuchen Sie {int Antwort; // Wenn Sie den Standardport verwenden, können Sie direkt eine Verbindung zum FTP Server ftpclient.connect (URL) herstellen. // ftp.connect (URL, Port); // Verbinden Sie den FTP -Server // Melden Sie sich bei ftpclient.login an (Benutzername, Passwort); ftpclient.setControlencoding (codieren); // Überprüfen Sie, ob die Verbindung erfolgreich ist Reply = ftpclient.getReplyCode (); if (! ftpreply.ispositiveCompletion (Antwort)) {System.out.println ("Verbindung fehlgeschlagen"); ftpclient.disconnect (); Rückgabeergebnis; } // Übertragen Sie das Arbeitsverzeichnis in das angegebene Verzeichnis boolean change = ftpclient.changeworkingDirectory (Pfad); ftpclient.setFiletype (ftp.Binary_file_type); if (Änderung) {result = ftpclient.storefile (neuer String (Dateiname.getBytes (Codierung), "ISO-8859-1"), Eingabe); if (result) {System.out.println ("erfolgreich hochgeladen!"); }} input.close (); ftpclient.logout (); } catch (ioException e) {e.printstacktrace (); } endlich {if (ftpclient.isconnected ()) {try {ftpclient.disconnect (); } catch (ioException ioe) {}}} return Ergebnis; }/*** Lade lokale Dateien auf den FTP -Server**/public void testUploadFromDisk () {try {FileInputStream in = new FileInputStream (neue Datei ("d: /test02/list.txt")); boolean flag = uploadFile ("10.0.0.102", 21, "admin", "123456", "/", "lis.txt", in); System.out.println (Flag); } catch (FilenotFoundException e) {e.printstacktrace (); }} /** * Beschreibung: Laden Sie die Datei vom FTP -Server herunter * * @Version1.0 * @param url * FTP -Server Hostname * @param port * FTP Server -Port * @param userername * ftp login -Konto * @param -Passwort * FTP -Login -Passwort * @param remotepath * @PARAM -LOCOPH -PHODE -PATHE -PATHE -PATHE -PATHE -PATHE -PATHE -PATHE -NAMED * @PARAM -SAORSAME * @PARAM -LOCAPH -PATHE -PATHE -SARM * @PARAM -SARM * @PARAM -SACEPHEL * @PARAM -LOCAPH -PATHEM -PATHE -PATHE -NAMPLE. Lokal nach dem Herunterladen * @return */ public static boolean Downfile (String -URL, int Port, String -Benutzername, String -Kennwort, String remotepath, String -Dateiname, String LocalPath) {boolean result = false; Versuchen Sie {int Antwort; ftpclient.setControlencoding (codieren); / * * Um chinesische Dateien hochzuladen und herunterzuladen, empfehlen einige Orte, die folgenden zwei Sätze anstelle von * neuer String (remotepath.getBytes (Codierung), "ISO-8859-1") Transcodieren zu verwenden. * Nach dem Test kann es nicht übergeben werden. */// ftpclientConfig conf = new ftpclientConfig (ftpclientConfig.Syst_nt); // Conf.SetServerLuGuageCode ("Zh"); ftpclient.connect (URL, Port); // Wenn der Standardport verwendet wird, können Sie direkt eine Verbindung zum FTP -Server mit ftpclient.login (Benutzername, Kennwort); // Login // Setzen Sie den Dateiübertragungsart auf binäre ftpclient.setFiletype (ftpclient.berary_file_type) her; // Erhalten Sie den FTP -Anmeldesantwortcode Reply = ftpclient.getReplyCode (); // Überprüfen Sie, ob das Anmeldung erfolgreich ist, wenn (! Ftpreply.ispositiveCompletion (Antwort)) {ftpclient.disconnect (); System.err.println ("FTP -Server verweigerte Verbindung."); Rückgabeergebnis; } // Übertragen Sie in das FTP-Serververzeichnis in das angegebene Verzeichnis ftpclient.changeworkingDirectory (neuer String (remotepath.getBytes (codieren), "ISO-8859-1")); // Die Dateiliste ftpfile [] fs = ftpclient.listfiles () abrufen; für (ftpfile ff: fs) {if (ff.getName (). Equals (Dateiname)) {Datei localFile = new Datei (LocalPath + "/" + ff.getName ()); OutputStream ist = new FileOutputStream (localFile); ftpclient.retrieveFile (ff.getName (), IS); IS.CLOSE (); }} ftpclient.logout (); Ergebnis = wahr; } catch (ioException e) {e.printstacktrace (); } endlich {if (ftpclient.isconnected ()) {try {ftpclient.disconnect (); } catch (ioException ioe) {}}} return Ergebnis; }/** * Laden Sie die Datei auf dem FTP -Server auf die lokale herunter * */public void testdownfile () {try {boolean flag = downfile ("10.0.0.102", 21, "admin", "123456", "/", "ip.txt", "e:/"); System.out.println (Flag); } catch (Ausnahme e) {e.printstacktrace (); }} public static void main (String [] args) {ftpapche fa = new ftpapche (); fa.testdownfile (); fa.TestUploadfromDisk (); }}2. Laden Sie FTP -Ordner hoch und herunterladen (Beachten Sie, dass der gesamte Ordner der gesamte Ordner ist).
Paket ftp; import Java.io.BufferedInputStream; Import Java.io.buffeedOutputStream; Import Java.io.file; Import Java.io.FileInputStream; Import Java.io.filenotFoundException; Import Java.ioTiltream; org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpclientconfig; import org.apache.commons.net.ftp.ftpfile; Ftpclient ftpclient; privater Stringstreifen; privat intport; privater String -Benutzer; privates Zeichenfolgenkennwort; private static logger logger = logger.getLogger (ftptest_04.class.getName ()); / * * * FTP -Konstruktor */ public ftptest_04 (String Strip, intPort, String -Benutzer, String -Kennwort) {this.strip = strip; this.intport = intport; this.user = user; this.Password = Passwort; this.ftpclient = new ftpclient (); } / *** @Return Bestimmen Sie, ob das Login erfolgreich ist FtpclientConfig ftpclientConfig = new ftpclientConfig (); ftpclientConfig.setServertimeZoneid (TimeZone.getDefault (). getId ()); this.ftpclient.setControlencoding ("GBK"); this.ftpclient.configure (ftpclientConfig); try {if (this.intport> 0) {this.ftpclient.connect (this.strip, this.intport); } else {this.ftpclient.connect (this.strip); } // FTP Server Connection Antwort int Reply = this.ftpclient.getReplyCode (); if (! ftpreply.ispositiveCompletion (Antwort)) {this.ftpclient.disconnect (); Logger.Error ("Anmelden beim FTP -Dienst fehlgeschlagen!"); Islogin zurückgeben; } this.ftpclient.login (this.user, this.password); // das Übertragungsprotokoll this.ftpclient.enterLocalPassivemode () festlegen; this.ftpclient.setFiletype (ftpclient.berary_file_type); logger.info ("Herzlichen Glückwunsch" + this.user + "erfolgreich in den FTP -Server angemeldet"); Islogin = wahr; } catch (Ausnahme e) {e.printstacktrace (); logger.Error (this.user + "Anmelden Sie sich beim FTP -Dienst an!" + e.getMessage ()); } this.ftpclient.setBufferSize (1024 * 2); this.ftpclient.setDatatimeout (30 * 1000); Islogin zurückgeben; }/ *** @exit server link**/ public void ftplogout () {if (null! }} catch (ioException e) {e.printstacktrace (); logger.warn ("Ausnahme des FTP -Servers!" + e.getMessage ()); } endlich {try {this.ftpclient.disconnect (); // Schließen Sie die Verbindung zum FTP -Server} catch (ioException e) {e.printstacktrace (); logger.warn ("Ausnahme des Schließens der Verbindung des FTP -Servers!"); }}}}}/**** Laden Sie die FTP-Datei hoch. boolescher Erfolg = Falsch; try {this.ftpclient.ChangeworkingDirectory (romotUploadepath); // Ändern Sie den Arbeitspfad instream = new BuferedInputStream (neuer FileInputStream (localFile)); logger.info (localFile.getName () + "Upload starten ..."); success = this.ftpclient.storefile (localFile.getName (), Instrenanz); if (success == true) {logger.info (localFile.getName () + "erfolgreich hochgeladen"); Erfolgserfolg; }} catch (FilenotFoundException e) {e.printstacktrace (); logger.Error (localFile + "nicht gefunden"); } catch (ioException e) {e.printstacktrace (); } endlich {if (instream! = null) {try {instream.close (); } catch (ioException e) {e.printstacktrace (); }}} Return Success; } / **** Datei herunterladen* @param remoteFileName -Dateiname, die heruntergeladen werden soll BufferedOutputStream outstream = null; boolescher Erfolg = Falsch; try {this.ftpclient.changeworkingDirectory (remotedownloadPath); outstream = new bufferedOutputStream (neuer FileOutputStream (strFilepath)); logger.info (RemoteFileName + "Start Download ..."); Success = this.ftpclient.retrieveFile (RemoteFileName, Outstream); if (success == true) {logger.info (RemoteFileName + "erfolgreich auf" + strFilepath) heruntergeladen; Erfolgserfolg; }} catch (Ausnahme e) {e.printstacktrace (); logger.Error (RemoteFileName + "Download fehlgeschlagen"); } endlich {if (null! = outstream) {try {outstream.flush (); outstream.close (); } catch (ioException e) {e.printstacktrace (); }}} if (success == false) {logger.Error (remoteFileName + "Download fehlgeschlagen !!!"); } Return Success; }/**** @Upload order* @param localDirectory* Lokaler Ordner* @param remotedirectoryPath* FTP -Server -Pfad endet mit Verzeichnis "/"**/public boolean uploadDirectory (String localDirectory, String RemotedirectoryPath) {Datei Src = neue Datei (localDirectory); try {remotedirectoryPath = remotedirectoryPath + src.getName () + "/"; boolean 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 + "Verzeichniserstellung fehlgeschlagen"); } File [] AllFile = src.listfiles (); für (int currentFile = 0; currentFile <allFile.length; currentFile ++) {if (! Allfile [currentFile] .isDirectory ()) {String srcname = AllFile [currentFile] .getPath (). toString (); UploadFile (neue Datei (SRCName), remotedirectoryPath); }} für (int currentFile = 0; currentFile <allFile.length; currentFile ++) {if (AllFile [currentFile] .isDirectory ()) {// revursives UploadDirectory (AllFile [currentFile] .getPath (). TOSTRING (), RESTIRECTIRECTORY (); }} return true; } / **** @Download Ordner* @param localDirectoryPath Lokale Adresse* @param remotedirectory remote order** / public boolean downloadDirectory (String localDirectoryPad, String remotedirectory) {try {String Dateiname = Neue Datei (remotedirectory). localDirectoryPath = localDirectoryPath + Dateiname + "//"; neue Datei (localDirectoryPath) .mkdirs (); Ftpfile [] AllFile = this.ftpclient.listfiles (remotedirectory); für (int currentFile = 0; currentFile <allFile.length; currentFile ++) {if (! AllFile [currentFile] .IsDirectory ()) {downloadFile (Allfile [currentFile] .getName (), localDirectoryPath, ausgelöster. }} für (int currentFile = 0; CurrentFile <AllFile.length; currentFile ++) {if (Allfile [currentFile] .isDirectory ()) {String StrremottirectoryPath = remotedirectory+ "/"+ Allfile [currentFile] .getname (); DownloadDirectory (LocalDirectoryPath, StrremotedirectoryPath); }}} catch (ioException e) {e.printstacktrace (); logger.info ("Ordner herunterladen"); false zurückgeben; } Return true; } // ftpclient set and erhalten Funktionen public ftpclient getftpclient () {return ftpclient; } public void setftpclient (ftpclient ftpclient) {this.ftpclient = ftpclient; } public static void main (String [] args) löst IOException aus {ftptest_04 ftp = new ftptest_04 ("10.0.0.102", 21, "admin", "123456"); ftp.ftplogin (); System.out.println ("1"); // Ordner hochladen boolean uploadflag = ftp.uploadDirectory ("d: // test02", "/"); // Wenn es sich um Administrator/handelt, werden alle Dateien übergeben. Wenn es nur/ist, wird es auf das Ordnersystem übergeben.out.println ("UploadFlag:" + UploadFlag); // Ordner herunterladen ftp.downloadDirectory ("d: // tm", "/"); ftp.ftPlogout (); }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels für das Studium oder die Arbeit eines jeden hilfreich sein wird. Ich hoffe auch, Wulin.com mehr zu unterstützen!