FTP - это английская аббревиатура протокола передачи файлов (протокол переноса файла), а китайская аббревиатура называется «письменный протокол передачи». Используется для двунаправленной передачи управляющих файлов в Интернете. В то же время это также приложение. Существуют различные приложения FTP, основанные на различных операционных системах, и все эти приложения придерживаются одного и того же протокола для передачи файлов. При использовании FTP пользователи часто сталкиваются с двумя понятиями: «Скачать» и «загрузить». «Загрузить» файлы означает копирование файлов с удаленного хоста на свой компьютер; «Загрузка» файлы означает копирование файлов с вашего компьютера на удаленный хост. В интернет -языке пользователи могут загружать (загружать) файлы на (из) удаленных хостов через клиентские программы.
Во-первых, Serv-U был загружен для настройки вашего компьютера в качестве файлового сервера FTP для легкой работы. Следующий код используется на FTP -сервере, и соответствующие данные подключения FTP должны быть записаны в коде для его завершения.
1. Загрузить и загрузить файлы FTP (обратите внимание, что это загрузка и загрузка отдельных файлов)
Импорт java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.fileOutputStream; импорт java.io.ioexception; импорт java.io.InputStream; import java.io.Outputerem; import org.Apache.commonS.T.ftp.ftp.ftp.ftp.ftp.ftp.ftp.ftp.ftp.ftp.ftp; org.apache.commons.net.ftp.ftpclient; Import org.apache.commons.net.ftp.ftpfile; import org.apache.commons.net.ftp.ftpreply;/*** Реализовать файл file -загрузку и загрузку файлов*/public class ftpapche {private static ftpclient ftpclient = newpclient = newpclient = newppclient = newpclient = newpclient = newpclient = newpclient =;););););););););););););););););););););););););););););););) Private Static String Encoding = System.getProperty ("file.encoding"); /** * Описание: загружать файлы на сервер FTP * * * @version1.0 * @param url * ftp server hostname * @param port * ftp -сервер порт * @param username * ftp chound wargin * @param Пароль * ftp loge log * @param path * ftp server seartory, если это root hiportory, это root hiplemare * @ploydame * @ploardame * @ploardame * @ploard @pale * @pale * @ploardame * @ploarmed FTP Server * @param Input * Local File Input Stream * @return возвращается истинно, в противном случае он вернет false */ public static boolean uploadfile (string url, int port, string username, String password, String pale, string filename, inputstream input) {boolean result = false; попробуйте {int ответить; // Если вы используете порт по умолчанию, вы можете напрямую подключиться к FTP -серверу ftpclient.connect (url); // ftp.connect (url, port); // Подключить FTP -сервер // Войти в ftpclient.login (имя пользователя, пароль); ftpclient.setControLencoding (кодирование); // Убедитесь, что соединение является успешным ответом = ftpclient.getReplyCode (); if (! ftpreply.ispositivecoplusion (reply)) {System.out.println ("Соберите подключение"); ftpclient.disconnect (); результат возврата; } // Передача рабочего каталога в указанный справочник Boolean изменение = ftpclient.changeWorkingDirectory (path); ftpclient.setFileType (ftp.binary_file_type); if (изменить) {result = ftpclient.storefile (new String (fileName.getBytes (кодирование), "iso-8859-1"), input); if (result) {System.out.println ("Загружено успешно!"); }} input.close (); ftpclient.logout (); } catch (ioException e) {e.printstackTrace (); } наконец {if (ftpclient.isconnected ()) {try {ftpclient.disconnect (); } catch (ioException ioe) {}}} return result; }/*** Загрузите локальные файлы на FTP -сервер**/public void testuploadFromDisk () {try {fileInputStream in = new FileInputStream (new File ("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 (); }} /**! локально после загрузки * @return */ public static boolean downfile (string url, int port, String username, String password, String remotePath, String fileName, String localPath) {boolean result = false; попробуйте {int ответить; ftpclient.setControLencoding (кодирование); / * * Чтобы загрузить и загружать китайские файлы, некоторые места рекомендуют использовать следующие два предложения вместо * новой строки (remotePath.getBytes (кодирование), "iso-8859-1"). * После тестирования его нельзя пройти. */// ftpclientConfig conf = new ftpclientConfig (ftpclientConfig.syst_nt); // conf.setserverlanguageCode ("zh"); ftpclient.connect (url, порт); // Если используется порт по умолчанию, вы можете напрямую подключиться к FTP -серверу с помощью ftpclient.login (username, password); // login // Установить тип передачи файла на Binary ftpclient.setFileType (ftpclient.binary_file_type); // Получить код ответа в систему ftp response response = ftpclient.getReplyCode (); // Убедитесь, что вход в систему успешно, если (! Ftpreply.ispositivecoplusion (reply)) {ftpclient.disconnect (); System.err.println («FTP -сервер отказался от соединения»); результат возврата; } // Передача в каталог FTP-сервера в указанный каталог ftpclient.changeworkingDirectory (new String (remotePath.getBytes (кодирование), "iso-8859-1")); // Получить список файлов ftpfile [] fs = ftpclient.listfiles (); for (ftpfile ff: fs) {if (ff.getName (). equals (filename)) {file localfile = new File (localPath + "/" + ff.getName ()); OutputStream is = new FileOutputStream (LocalFile); ftpclient.retrievefile (ff.getName (), IS); is.close (); }} ftpclient.logout (); result = true; } catch (ioException e) {e.printstackTrace (); } наконец {if (ftpclient.isconnected ()) {try {ftpclient.disconnect (); } catch (ioException ioe) {}}} return result; }/** * Загрузите файл на сервере FTP на локальный * */public void testdownfile () {try {boolean flag = downfile ("10.0.0.102", 21, "admin", "123456", "/", "ip.txt", "E:/"); System.out.println (flag); } catch (Exception e) {e.printstackTrace (); }} public static void main (string [] args) {ftpapche fa = new ftpapche (); fa.testdownfile (); fa.testuploadfromDisk (); }}2. Загрузить и загрузить папки FTP (обратите внимание, что вся папка - вся папка)
пакет ftp; импорт java.io.bufferedinputstream; импорт java.io.bufferedoutputstream; импорт java.io.file; импорт java.io.fileinputstream; импорт java.io.filenotfoundexception; импорт java.io.fileOutputStream; импорт java.io.ioexception; org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpclientConfig; import org.apache.commons.net.ftp.ftpfile; импорт org.apache.commons.net.ftp.ftpRepl ftpclient; частная струнная полоса; частный int intport; частная строковая пользователь; Private String Password; Private Static Logger logger = logger.getLogger (ftptest_04.class.getName ()); / * * * FTP Constructor */ public ftptest_04 (String Strip, Int Intport, String User, String Password) {this.strip = strip; this.intport = intport; this.user = user; this.password = пароль; this.ftpclient = new ftpclient (); } / *** @return определить, является ли логин успешным** / public boolean ftplogin () {boolean islogin = false; 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 -сервер Connection Ответ int rest = this.ftpclient.getReplyCode (); if (! ftpreply.ispositivecoplusion (reply)) {this.ftpclient.disconnect (); logger.error («Войти в службу FTP не удалось!»); вернуть ISLOGIN; } this.ftpclient.login (this.user, this.password); // Установить протокол передачи this.ftpclient.enterlocalpassivivemode (); this.ftpclient.setFileType (ftpclient.binary_file_type); logger.info ("поздравляю" + this.user + "успешно вошел в FTP -сервер"); ISLOGIN = TRUE; } catch (Exception e) {e.printstackTrace (); logger.error (this.user + "Войдите в службу FTP не удалось!" + e.getMessage ()); } this.ftpclient.setBuffersize (1024 * 2); this.ftpclient.setDatatimeout (30 * 1000); вернуть ISLOGIN; }/ *** @Exit Close Server Link**/ public void ftplogout () {if (null! = This.ftpclient && this.ftpclient.isconnected ()) {try {boolean reuslt = this.ftpclient.logout (); // exit ftp server if (reuslt) {logger.inf in service; "exit t; }} catch (ioException e) {e.printstacktrace (); logger.warn ("Исключение выхода из FTP -сервера!" + e.getMessage ()); } наконец {try {this.ftpclient.disconnect (); // Закрыть соединение с FTP -сервером} catch (ioException e) {e.printStackTrace (); logger.warn («Исключение от закрытия соединения сервера FTP!»); }}}}}/**** Загрузите файл ftp* @param localfile local file* @param romotuploadepath upload path- должен закончиться/**/public boolean uploadfile (file localfile, string romotuploadepath) {buffereinptream instream = null; логический успех = false; try {this.ftpclient.changeworkingDirectory (romotuploadepath); // Изменить рабочий путь instriam = new BufferedInputStream (new FileInputStream (LocalFile)); logger.info (localfile.getName () + "start upload ..."); успех = this.ftpclient.storefile (localfile.getname (), instream); if (success == true) {logger.info (localfile.getName () + "Загружено успешно"); вернуть успех; }} catch (filenotfoundexception e) {e.printstacktrace (); logger.error (localfile + "не найден"); } catch (ioException e) {e.printstackTrace (); } наконец {if (instream! = null) {try {instream.close (); } catch (ioException e) {e.printstackTrace (); }}} вернуть успех; } / **** Загрузить файл* @param remotefilename Имя файла для загрузки* @param localdires Скачать в локальный путь* @param remotedownloadpath Путь, в котором находится remotefilename** / public boolean downloadfile (string remotefilename, String localdires, String remotedWartPath) {String strfilePath = reseledires +; BufferedOutputStream Outstream = null; логический успех = false; try {this.ftpclient.changeworkingDirectory (remotedOwnloadPath); upstream = new BufferedOutputStream (New FileOutputStream (strFilePath)); logger.info (remotefilename + "Start Download ..."); Успех = this.ftpclient.retrievefile (remotefilename, outstream); if (success == true) {logger.info (remotefilename + "успешно загружен на" + strfilepath); вернуть успех; }} catch (Exception e) {e.printstackTrace (); logger.error (remotefilename + "Загрузка не удалось"); } наконец {if (null! = outstream) {try {upstream.flush (); outstream.close (); } catch (ioException e) {e.printstackTrace (); }}} if (success == false) {logger.error (remotefilename + "Загрузка не удалась !!!); } вернуть успех; }/**** @upload folder* @param localdirectory* local folder* @param remotedirectorypath* Путь FTP -сервера заканчивается каталогом "/"**/public boolean uploaddirectory (string localdirectory, string remoteRectoryPath) {file src = new File (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 + "Создание каталога не удалось"); } File [] allfile = src.listfiles (); for (int currentfile = 0; currentFile <allfile.length; currentFile ++) {if (! allfile [currentFile] .isdirectory ()) {string srcname = allfile [currentFile] .getPath (). ToString (); uploadfile (новый файл (srcname), remoteRectoryPath); }} for (int currentfile = 0; currentFile <allfile.length; currentFile ++) {if (allfile [currentFile] .isdirectory ()) {// рекурсивный uploadDirectory (allfile [currentFile] .getPath (). ToString (), remotErectoryPath); }} вернуть true; } / **** @download folder* @param localdirectorypath Локальный адрес* @param remotedirectory удаленная папка** / public boolean downloaddirectory (string localdirectorypath, string remotedirectory) {try {string fillename = new file (remotedirectory) .getName (); LocalDirectoryPath = localDirectoryPath + имя файла + "//"; новый файл (LocalDirectoryPath) .mkdirs (); Ftpfile [] allfile = this.ftpclient.listfiles (remotedirectory); for (int currentFile = 0; currentFile <allfile.length; currentFile ++) {if (! allfile [currentFile] .isdirectory ()) {downloadfile (allfile [currentFile] .getName (), localDirectoryPath, remotedRectory); }} for (int currentfile = 0; currentFile <allfile.length; currentFile ++) {if (allfile [currentFile] .isdirectory ()) {String strremoteRectoryPath = remotedirectory+ "/"+ allfile [currentfile] .getName (); DownloadDirectory (LocalDirectoryPath, StrremotEdirectoryPath); }}} catch (ioException e) {e.printstacktrace (); logger.info ("Скачать папку не удастся"); вернуть ложь; } вернуть true; } // ftpclient set и get functions public ftpclient getftpclient () {return ftpclient; } public void setftPclient (ftpClient ftpClient) {this.ftpclient = ftpclient; } public static void main (string [] args) бросает ioException {ftptest_04 ftp = new ftptest_04 ("10.0.0.102", 21, "admin", "123456"); ftp.ftplogin (); System.out.println ("1"); // Загрузка папки Boolean uploadflag = ftp.uploadDirectory ("d: // test02", "/"); // Если это администратор/, то все файлы передаются. Если это просто/, то он передается в систему папок.out.println ("uploadflag:" + uploadflag); // Скачать папку ftp.downloadDirectory ("d: // tm", "/"); ftp.ftplogout (); }}Выше всего содержание этой статьи. Я надеюсь, что содержание этой статьи поможет всем, кто учится или работа. Я также надеюсь поддержать Wulin.com больше!