Dieser Artikel beschreibt die Methode zum Hochladen von Dateien auf einem FTP -Server mit Java. Teilen Sie es für Ihre Referenz wie folgt weiter:
Werkzeuge:
Paket com.fz.common.util; import Java.io.datainputStream; Import Java.io.dataoutputStream; Import Java.io.FileInputStream; Java.io.filenotfoundException; import Java.io.fileOutputStream; java.text.SimpledateFormat; import Java.util.date; import org.apache.commons.net.ftp.ftpclient; DataNputStream getInput () {datainputStream d = null; try {d = new DataNputStream (neuer FileInputStream ("c: /wmc.dat"); Rückkehr D; } catch (FilenotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } return d; } / ** * * @date 26. September 2011 10:17:44 * @param whites * @return * @Author Zhangh * / public static boolean creathitHitemanageFile (Byte [] Whites, String -Datei) {DataOutputStream d; try {d = new DataOutputStream (neuer FileOutputStream (Datei)); D.Write (Weiß); D.Flush (); } catch (Ausnahme e) {// Todo automatisch generierter Block return false; // e.printstacktrace (); } Return true; } /** * * @date Sep 16, 2011 4:39:22 PM * @param url * @param username * @param password * @param path * @param filename * @param input * @return * @author zhangh */ public static boolean uploadFile(String url, String username, String password, String path, String filename, InputStream input) { boolean success = false; Ftpclient ftp = new ftpclient (); Versuchen Sie {int Antwort; ftp.connect (URL); // ftp.connect (URL, Port); // Stellen Sie eine Verbindung zum FTP -Server her // Wenn der Standardport verwendet wird, können Sie mit FTP.Connect (URL) direkt eine Verbindung zum FTP -Server herstellen. ftp.login (Benutzername, Passwort); // Anmelden in Antwort = ftp.getReplycode (); if (! ftpreply.ispositiveCompletion (Antwort)) {ftp.disconnect (); Erfolgserfolg; } ftp.ChangeworkingDirectory (Pfad); ftp.storefile (Dateiname, Eingabe); ftp.logout (); input.close (); Erfolg = wahr; } catch (ioException e) {e.printstacktrace (); } endlich {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}} Return Erfolg; } / ** * * Methodenname: UploadFileftp * Methode Beschreibung: Blacklist, Black User Datei Upload FTP -Server * @param url * @param userername * @param password * @param path * @param Dateiname * @param Input * @param input2 * @return * boolean * Version 1.0 Autor UploadFileftp (String -URL, String -Benutzername, String -Kennwort, String -Pfad, String -Dateiname, inputStream -Eingabe, inputStream input2) {Datum date = new Date (); SimpleDateFormat Formatter = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); String time = Formatter.format (Datum); boolescher Erfolg = Falsch; Ftpclient ftp = new ftpclient (); Versuchen Sie {int Antwort; ftp.connect (URL); ftp.login (Benutzername, Kennwort); // login Reply = ftp.getreplycode (); if (! ftpreply.ispositiveCompletion (Antwort)) {ftp.disconnect (); Erfolgserfolg; } ftp.ChangeworkingDirectory (Pfad); ftp.storefile (Dateiname, Eingabe); ftp.storefile (Dateiname + Zeit, input2); ftp.logout (); input.close (); Erfolg = wahr; } catch (ioException e) {e.printstacktrace (); } endlich {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}}} Return Erfolg; }}Lesen Sie die Konfigurationsdatei:
Paket com.fz.fzbike.domain; import java.io.bufufedInputstream; import Java.io.fileinputstream; Import Java.io.ioException; Import Java.io.inputStream; importieren java.util.properties; Bean -Klasse, die FTP -Serverinformationen erhalten * * @Author Wuxq * * */public class sysconstats {private static logger logger = logger.getLogger (sysconstats.class); public static String FTPSERVER;// ftp server ip address public static String FTPUSERNAME;// ftp server username public static String FTPPASSWORD;// ftp server user password public static String ENVELOPERESULTROOT;// The path to store the ftp server public SysConstats() { try { InputStream in = new BufferedInputStream(new FileInputStream( Sysconstants.public_path.substring (0, sysconstants.public_path.length () - 7) + "/bidfileConfig.Properties")); Eigenschaften prop = neue Eigenschaften (); prop.load (in); Sysconstats.ftpserver = prop.getProperty ("ftpServer", "None"); Sysconstats.ftpusername = prop.getProperty ("ftpusername", "keine"); Sysconstats.ftppassword = prop.getProperty ("ftppasword", "keine"); Sysconstats.Enveloperesultroot = prop.getProperty ("Enveloperesultroot", "None"); log.debug ("FTP -Konfigurationsinformationen erfolgreich lesen!"); } catch (ioException e) {log.debug ("FTP -Konfigurationsinformationen nicht gelesen!"); E. printstacktrace (); }} public static String GetftPServer () {return ftpServer; } public static void setftpServer (String ftpServer) {ftpserver = ftpServer; } public static String getftpusername () {return ftpusername; } public static void setftpusername (String ftpusername) {ftpusername = ftpusername; } public static String Getftppassword () {return ftppasword; } public static void setftPPassWord (String ftppasword) {ftppasword = ftppasword; } public static String GetEnveloperesultroot () {return banderesultroot; } public static void seteVerveloperesultroot (String Enveloperesultroot) {Enveloperesultroot = Enveloperesultroot; } public static void main (String args []) {new sysconstats (); }}Laden Sie die Datei FTP hoch:
Paket com.fz.fzbike.biz; import Java.io.BufufferedInputStream; Import Java.io.BytearrayoutputStream; Import Java.io.DataoutputStream; Import Java.io.fileinputstream; Import Java.io.filenotfoundException; Importeam. java.text.decimalformat; import com.enets.basesys.user.vo.uservo; import com.enets.framework.assemble.requesthashnew; com.fz.fzbike.domain.sysconstats;/** * Laden Sie den Kartencode auf den FTP-Server hoch, um eine BAT-Datei zu generieren 10:38:38 Uhr */ public void uploadftp (RequestHasHNew Reh) {String cardType = reh.get ("Cardype"). ToString (); DbConnection dbc = reh.getDbc (); // Link -Datenbank dbc.endtran (); // Bestimmen Sie, ob es leer ist und es sich um einen Berichtsverlust handelt, beenden Sie den Berichtsverlust, beenden Sie die Blacklist und erhalten Sie den Kartentyp basierend auf der Karten -ID, wenn (StringUtil.isnull (CardType)) {String cardTypesql = "Select ci.card_type von lc_t_card_info ci, wob CardType = dbc.getList0 (cardtypesql); } String top = "c:/upload/"; String -Datei = top + "bmc.dat"; // Definieren Sie ein Verzeichnis zum Speichern der temporären Blacklist -Fledermaus -Fledermaus -Fledermaus -Datei String WhiteFile = Top + "Wmc.dat"; // Definieren Sie ein Verzeichnis zum Speichern temporärer Whitelist BAT -Datei String buserfile = top + "buser.dat"; // Definieren Sie ein Verzeichnis, um temporäre schwarze Benutzerdatei -String -Dateidateis = dbc.setoracleGlideValue ("LC_T_UPGRADE_FILE"); // Die serielle Nummer der Dateitabelle abrufen // Die aktuelle Benutzer -ID -Uservo uservo = reh.getuservo () erhalten; String userID = uservo.getUerId (); DecimalFormat DF = New Decimalformat ("0,0"); if (cardtype.equals ("7")) {stringBuffer bf = new StringBuffer (1024); bf .append( "select distinct card_in_no from(select tc.card_in_no") .append( " from lc_t_blacklist tb left join lc_t_card_info tc") .append( " on tb.card_id = tc.card_id where tc.card_type = 7") .append(" and tb.whether_effective = 1 union all select ") .Append (" tc.card_in_no von lc_t_card_loss cl links join ") .Append (" lc_t_card_info tc auf cl.card_id = tc.card_id wobei tc.card_type = 7 und ") .Andend (" cl.whthtoectect. 1) T.Card_NO_ "); Datensätze in der Blacklist- und Berichtsprotokolltabelle StringBuffer binse = new StringBuffer (1024); BFFER .Append ("Select ti.card_in_no von lc_t_card_info ti") .Append ("wobei ti.card_type = 7 und ti.card_make_Status = 2 Bestellung nach Ti.card_in_no"). String arr [] [] = dbc.getarr (bf.toString ()); // Definieren Sie ein Array, um die Kartencodes zu empfangen, die in der Karteninformationstabelle String listenr [] [] = dbc.getarr (bffer.toString ()) sortiert sind; Upload_f (arr, Datei); // Die Versionsnummer der Blacklist -Fledermausdatei abrufen, der Anfangswert ist 1.0 String vectorsql = "Select File_Vesion aus (select row_number () over (order by t.file_vesion desc) num," + "T.file_Vesion aus lc_t_upgrade_file t won t.file_type = 2) wobei num = 1 1 1"; String vesion = dbc.getList0 (vesionsql); Double ve = 1,0; // Definieren Sie die Variable der Blacklist -Versionsnummer, der Anfangswert ist 1.0/ * * Wenn in der Datenbank eine alte Version vorhanden ist, wird die Version um 0,1 */ if (StringUtil.isnotnull (Vesion)) {ve = (double.ParseDoUble (Vesion) + 0,1) erhöht; } vesion = df.format (ve); // Versionsaufzeichnung SQL Anweisung String bmcsql = "In lc_t_upgrade_file -Werte einfügen (" + fileId + ", '" + Datei + "', '" + vesion + "', '2', sySdate," + userID + "); dbc.insertdb (bmcsql); // bestehen an der Datenbank hochladen_f (listarr, whiteFile); // Die Versionsnummer der Whitelisted BAT -Datei abrufen, der Anfangswert ist 1.0 String vesionsql2 = "select File_Vesion aus (select row_number () over (orderion by t.file_vesion desc) num" + "t.file_vesion von lc_t_upgrade_file t won t.file_type = 5) 5) 5); String vesion2 = dbc.getList0 (vesionsql2); Double Ve2 = 1,0; // Definieren Sie die Variable der Whitelist -Versionsnummer, der Anfangswert ist 1.0/ * * Wenn in der Datenbank eine alte Version vorhanden ist, wird die Version um 0,1 */ if (StringUtil.isnotnull (Vesion2)) {ve2 = (double.ParSeDouble (Vesion2) + 0,1) erhöht; } String bFileId = dbc.setoracleglideValue ("lc_t_upgrade_file"); // Die serielle Nummer der Dateitabelle Vesion2 = df.Format (ve2) abrufen; // Versionsaufzeichnung SQL Anweisung String BMCSQL2 = "In lc_t_upgrade_file values (" + bfileid + ", '" + WhiteFile + "', '" + Vesion2 + "', '5', SySdate," userId + ") einfügen; dbc.insertdb (bmcsql2); // persist in die Datenbank} else {StringBuffer bf2 = new StringBuffer (1024); bf2 .Append ("Wählen Sie bestimmte card_in_no aus (auswählen tc.card_in_no") .Append ("von lc_t_blacklist tb links join lc_t_card_info tc") .Append ("on tb.card_id = tc.card_id, wob select ") .Append (" tc.card_in_no von lc_t_card_loss cl links join ") .Append (" lc_t_card_info tc auf cl.card_id = tc.card_id ") .Andend (" wobei tc.card_type <> 7 und cl.Whththtoective "). t.card_in_no "); // alle Nicht-Administrator-Datensätze in der Blacklist-Tabelle und gemeldete verlorene Benutzertabelle // Definieren Sie ein Array zum Empfangen der Benutzerkartencodes, die in schwarzen Benutzern string arr2 [] [] [] = dbc.getarr (bf2.toString ()) sortiert sind. Upload_F (arr2, buserfile); // Die Versionsnummer der schwarzen Benutzerfleckendatei abrufen, der Anfangswert ist 1.0 String hsersql = "Select File_Vesion aus (select row_number () over (order von t.file_vesion desc) num," + "t.file_vesion aus lc_t_upgrade_file t won t.file_type = 4) wobei num = 1 1"; String vesion3 = dbc.getList0 (Husersql); Double VES = 1,0; // Definieren Sie die Variable der schwarzen Benutzerversionsnummer, der Anfangswert ist 1.0/ * * Wenn in der Datenbank eine alte Version vorhanden ist, wird die Version um 0,1 */ if (StringUtil.isnotnull (Vesion3)) {ves = (double.ParseDoUble (Vesion3) + 0,1) erhöht. } vesion3 = df.format (ves); // Versionsaufzeichnung SQL Anweisung String Husersql = "In lc_t_upgrade_file -Werte einfügen (" + fileId + ", '" + buserfile + "', '" + vesion3 + "', '4', sySdate," + userID + "); dbc.insertDB(husersql);// Persist to the database} } /** * * Method name: writeLong Method description: Write long integer to the output stream* * @param input * @return byte[] version 1.0 author wuxq Sep 28, 2011 10:54:58 AM */ public static byte[] writeLong(long input) { ByteArrayOutputStream baos = new BytearrayoutputStream (); DataOutputStream OS = New DataOutputStream (BAOS); try {os.writelong (long.reverseBytes (Eingabe)); } catch (ioException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } byte [] b = baos.tobytearray (); Rückkehr B; } / ** * * Methodenname: Upload_f Methode Beschreibung: Laden Sie die Datei in den FTP -Server hoch * * @param arr * @param Datei * void Version 1.0 Autor Wuxq 8. Oktober 2011 11:37:27 Uhr * / public static void upload_f (String [] [] arr, String -Datei) {] byte byTe byTe byTe Byte byTe Byte byTe Byte byTe ByTe Byte Byte Byte ByTe ByTe. byte [] result = new byte [1]; if (stringutil.isnotnull (arr)) {result = new byte [arr.length * 4]; int Position = 0; für (int i = 0; i <arr.length; i ++) {by = writeLong (long.parselong (arr [i] [0])); Byte -Liste [] = neues Byte [4]; für (int h = 0; h <list.length; h ++) {list [h] = by [h]; } für (int g = Position; g <Position+4; g ++) {result [g] = list [g - 4 * i]; } Position = Position + 4; }} boolean bool = fileUtil.creatwhitemanageFile (Ergebnis, Datei); // Erstellen Sie eine Fledermausdatei, wenn (bool) {// inputStreamReader isr = new InputStreamReader (neu // FileInputStream (Datei)); InputStream inp = null; Inpream inp2 = null; try {inp = new BuferedInputStream (neuer FileInputStream (Datei)); INP2 = neuer BufferedInputStream (neuer FileInputStream (Datei)); } catch (FilenotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } // Abfangen die Dateiname Zeichenfolge f = Datei.substring (10, file.length ()); // FTP -Konfigurationsinformationen sysconstats sc = new sysconstats () abrufen; DateiUtil.UploadFileftp (sc.ftpserver, sc.ftpusername, sc.ftppasword, sc.enveloperesultroot, f, INP, INP2); }}}Weitere Informationen zu Java -verwandten Inhalten finden Sie in den Themen dieser Website: "Zusammenfassung von Java -Dateien und Verzeichnisbetriebskenntnissen", "Tutorial zu Java -Datenstrukturen und -algorithmen", "Zusammenfassung der Fähigkeiten zum Dom -Knoten -Betrieb von Java Operation Dom Node" und "Zusammenfassung von Java -Cache -Betriebsfähigkeiten" "
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.