Ein Projekt, das ich früher in der Vergangenheit durchgeführt habe und Dateien auf den FTP -Server hochgeladen habe, und jetzt überprüfe ich es. Es ist relativ einfach und Sie können es auf einmal verstehen.
Umgebung: Installieren Sie zunächst den FTP -Server zuerst. Ich habe es lokal in Win8 mit IIS konfiguriert. Sie finden das Installationsdokument in Baidu.
1. Erstellen Sie eine FTP -Konfigurationsdatei in Ihrem Projektverzeichnis, das Verzeichnis ist wie unten gezeigt
01 ftpconfig.Properties:
ftpip = 10.73.222.29
ftpport = 21
ftpuser = wp
ftppwd = 04143114wp
ftpremotepath = D: // Share
02 Klasse mit dem spezifischen Inhalt in ftpconfig.Properties:
Paket com.java.core.util; import java.io.ioxception; import java.io.inputstream; import Java.util.properties; private Eigenschaften Eigenschaften; public readftpproperties () {is = this.getClass (). getResourceAsStream ("/ftpconfig.Properties"); // Lesen Sie die Konfigurationsdatei in die Eingabestream -Eigenschaften = neue Eigenschaften (); Versuchen Sie {Properties.load (IS); } catch (ioException e) {System.out.println ("Konfigurationsdatei existiert nicht .."); E. printstacktrace (); } endlich {if (null! = is) {try {is.close (); } catch (ioException e) {System.out.println ("geschlossener Stream fehlgeschlagen .."); E. printstacktrace (); }}}} public String getIp () {// Erhalten Sie die IP -Adresse des FTP -Servers returneigenschaften.getProperty ("ftpip"); } public String getPort () {// Erhalten Sie den Port der Rückgabe von FTP Server. } public String getUser () {// Holen Sie sich den FTP -Login -Benutzernamen return Properties.getProperty ("ftpuser"); } public String getPwd () {// Erhalten Sie das Anmeldekennwort der Rückgabe von FTP Server. } public String getRemotepath () {// Erhalten Sie das Verzeichnis, in dem die Dateien auf dem FTP -Server gespeichert sind. }}03 Die Schnittstellenklasse für das Datei -Upload und herunterladen
Paket com.java.web.service; import java.io.inputstream; import org.apache.commons.net.ftp.ftpclient; Schnittstelle ftpService { / * * Anmelden Sie sich bei FTP * / public boolean loginftp (ftpclient client, Readftpproperties RFP); / * * Melden Sie sich aus ftp ab */ public boolean logout (ftpclient client); /// * * Laden Sie die Datei in Remotepath hoch, deren Name auf FTP eingibt. / * * Laden Sie den Datei -Dateinamen aus dem Verzeichnis remotepath herunter */ public InputStream DownFileByftp (FTPClient Client, String remotepath, String -Dateiname); /** Löschen Sie die Datei mit dem Verzeichnispfadname auf FTP*/ public boolean delfile (ftpclient client, String pathName);};04 Die Schnittstellen -Implementierungsklasse für Datei -Upload und Download
Paket com.java.web.service.serviceImpl; import java.io.ioxception; import Java.io.inputstream; import Java.io.unsupportenEnexception; org.apache.commons.net.ftp.ftpfile; import com.java.core.util.readftpproperties; import com.java.web.service.ftpService;/*** @Author Wangpei* @Version Time: Mai im Mai 2017 um 10:02:28 Uhr Beschreibung der Klasse @öffentliche Klasse ftpServicla. public boolean loginftp (ftpclient client, Readftpproperties RFP) {String ftpip = rfp.getIp (); String ftpport = rfp.getPort (); String ftpuser = rfp.getUser (); String ftppwd = rfp.getPWD (); // String fgtpremotepath = rfp.getRemotepath (); boolean b = falsch; try {client.connect (ftpip, Integer.ParseInt (ftpport)); } catch (numberFormatexception e) {System.out.println ("kann nicht mit FTP herstellen"); false zurückgeben; } catch (socketException e) {System.out.println ("" kann nicht mit FTP herstellen "); false zurückgeben; } catch (ioException e) {System.out.println ("" kann nicht mit FTP herstellen "); false zurückgeben; } catch (ioException e) {System.out.println ("" kann nicht mit FTP herstellen "); false zurückgeben; } client.setControlencoding ("UFT-8"); try {b = client.login (ftpuser, ftppwd); } catch (ioException e) {System.out.println ("Login FTP -Fehler"); logout (client); // logout/disconnect FTP -Server -Link Rückgabe falsch; } return b; } public boolean logout (ftpclient client) {boolean b = false; try {b = client.Logout (); // logout client.disconnect (); // bonnect} catch (ioException e) {return false; } return b; } public boolean uploadfile (ftpclient client, String remotepath, String fileNewname, InputStream InputStream, Readftpproperties RFP) {boolean b = false; try {client.setFileType (ftpclient.berary_file_type); client.enterLocalPassivemode (); if (remotepath! = null &&! ". für (String onepath: Pfade) {if (Onepath == null || "" .Equals (Onepath.trim ())) {Fortsetzung; } onepath = new String (Onepath.getBytes ("UTF-8"), "ISO-8859-1"); System.out.println ("Onepath =" + Onepath); if (! Client.ChangeWorkingDirectory (Onepath)) {client.makedirectory (Onepath); // Erstellen Sie ein FTP -Server -Verzeichnis client.ChangeworkingDirectory (Onepath); // das FTP -Server -Verzeichnis} else {System.out.println ("Datei einzelner Path"); }}} b = client.storefile (neuer String (fileNewname.getBytes ("utf-8"), "ISO-8859-1"), InputStream); } catch (unportedenCodingException e) {return false; } catch (ioException e) {return false; } return b; } public InputStream downfileByftp (ftpclient ftpclient, String remotepath, String -Dateiname) {ftpfile [] fs; InputStream ist = null; Try {// Setzen Sie den passiven Modus ftpclient.enterLocalPassivemode (); // ftpclient.setFiletype (ftp.bary_file_type) festlegen; // Setzen Sie das Format bearbeiten ftpclient.setControlencoding ("utf-8"); remotepath = remotepath.substring (0, remotepath.lastindexof (Dateiname)); fs = ftpclient.listFiles (remotepath); // rekursives Zielverzeichnis für (ftpfile ff: fs) {if (ff.getName (). Equals (Dateiname)) {// Die Zieldatei finde die Zieldatei is = ftpclient.retriebeStream (new String ((remotepath). "ISO-8859-1")); brechen; }}} catch (ioException e) {e.printstacktrace (); } return ist; } public boolean delfile (ftpclient ftpclient, String pathName) {boolean b = false; try {b = ftpclient.deleteFile (pathname); Rückkehr B; } catch (Ausnahme e) {return false; } endlich {logout (ftpclient); // Beenden/Trennen Sie den FTP -Server -Link}}}Der Code ist leicht zu verstehen, er sollte durch einmal gelesen werden. Ich werde es nicht speziell hier analysieren, hauptsächlich die Kommentare im Code.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.