Dalam pengembangan program Java, FTP lebih sering digunakan dan sering berurusan dengannya, seperti mengunggah dan mengunduh file ke server FTP. Artikel ini memperkenalkan Anda cara menggunakan FTPClient di Jakarta Commons (dalam paket Commons-Net) untuk mengunggah dan mengunduh file.
1. Unggah file
Saya tidak akan memperkenalkan prinsipnya, harap baca kode secara langsung
/** * Description: Upload file to the FTP server* @Version1.0 Jul 27, 2008 4:31:09 PM by Cui Hongbao ([email protected]) Create * @param url FTP server hostname * @param port FTP server port * @param username FTP login account * @param password FTP login password * @param path FTP server save directory * @param FileName Unggah ke server ftp * @param input input stream * @return return true berhasil, jika tidak mengembalikan false */ publicstaticboolean unggahan (string url, int port, string username, string password, string path, string fileName, inputStream input) {boolean success = false; FtpClient ftp = ftpclient baru (); coba {int balasan; ftp.connect (url, port); // Sambungkan server ftp // Jika port default digunakan, Anda dapat langsung terhubung ke server FTP dengan menggunakan ftp.connect (url); ftp.login (nama pengguna, kata sandi); // login balasan = ftp.getReplycode (); if (! ftpreply.ispositiveCompletion (balasan)) {ftp.disconnect (); Sukses kembali; } ftp.changeworkingdirectory (path); ftp.storefile (nama file, input); input.close (); ftp.logout (); Sukses = Benar; } catch (ioException e) {e.printstacktrace (); } akhirnya {if (ftp.isconnected ()) {coba {ftp.disconnect (); } catch (ioException ioE) {}}} return Success; }<pre></pre> /*** Description: Upload file to the FTP server* @Version1.0 Jul 27, 2008 4:31:09 PM by Cui Hongbao ([email protected]) Create * @param url FTP server hostname* @param port FTP server port* @param username FTP login account* @param password FTP login password* @param path FTP server save directory* @param filename Upload to the FTP server* @param input Input stream* @return Return true successfully, otherwise return false*/public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {boolean success = false;FTPClient ftp = new FTPClient();try {int Balas; ftp.connect (url, port); // Sambungkan server ftp // Jika port default digunakan, Anda dapat secara langsung terhubung ke server FTP dengan menggunakan ftp.connect (url); ftp.login (nama pengguna, kata sandi); // login balasan = ftp.getReplyCode (); IF); {ftp.disconnect (); return success;} ftp.changeworkingdirectory (path); ftp.storefile (nama file, input); input.close (); ftp.logout (); success = true;} catch (ioException e) {e.printstacktrace ();} akhirnya {if (ftp.isconnected ()) {coba {ftp.disconnect ();} catch (ioException ioe) {ftp.disconnect ();
Mari Tulis Dua Contoh Kecil:
1. Unggah file lokal ke server FTP, kodenya adalah sebagai berikut:
@Test publicVoid testUploadFromDisk () {coba {fileInputStream in = new fileInputStream (file baru ("d: /test.txt")); bendera boolean = unggahfile ("127.0.0.1", 21, "test", "test", "d:/ftp", "test.txt", in); System.out.println (flag); } catch (FileNotFoundException e) {e.printstacktrace (); }} <pr Pre> </pruce> @testpublic void testUploadFromDisk () {coba {fileInputStream in = new fileInputStream (file baru ("d: /test.txt")); uji boolean = unggah ("127.0.0.1", "test", "," 127.0.0.1, "," DEADLEAN, "127.0.0." di); System.out.println (flag);} catch (FileNotFoundException e) {e.printstacktrace ();}} 2. Hasilkan file di server FTP dan tulis string ke file
@Test publicVoid testUploadFromString () {coba {inputStream input = new bytearrayInputStream ("test ftp" .getbytes ("UTF-8")); bendera boolean = unggahfile ("127.0.0.1", 21, "test", "test", "d:/ftp", "test.txt", input); System.out.println (flag); } catch (UnsupportedEncodingException e) {e.printstacktrace (); }} <pr Pre> </pr Pre> @testpublic void testUploadFromString () {coba {inputStream input = bytearrayInputStream baru ("test ftp" .getbytes ("UTF-8")); test = unggahfile ("127.0.0.1", "21," "" "", "" 127.0.1, "", "127.0.1," " "test.txt", input); System.out.println (flag);} catch (unsportedencodingException e) {e.printstacktrace ();}} 2. Unduh file
Kode untuk mengunduh file dari server FTP juga sangat sederhana, silakan merujuknya sebagai berikut:
/*** Deskripsi: Unduh file dari server FTP* @Version. Jul, :: pm oleh cui hongbao ([email protected]) buat* @param url server hostname* @param port ftp server port* @param username ftp login @param local fof local foFeMe* @param remotepath rem RemotEpath Path Simpan ke lokal setelah mengunduh * @return */ publicstaticboolean downfile (string url, int port, string nama pengguna, kata sandi string, string remotePath, string fileName, string localpath) {boolean sukses = false; FtpClient ftp = ftpclient baru (); coba {int balasan; ftp.connect (url, port); // Jika port default digunakan, Anda dapat langsung terhubung ke server FTP dengan menggunakan FTP.Connect (URL); ftp.login (nama pengguna, kata sandi); // login balasan = ftp.getReplycode (); if (! ftpreply.ispositiveCompletion (balasan)) {ftp.disconnect (); Sukses kembali; } ftp.changeworkingdirectory (remotePath); // Transfer ke direktori server ftp ftpfile [] fs = ftp.listFiles (); untuk (ftpfile ff: fs) {if (ff.getName (). Equals (fileName)) {file localfile = file baru (localpath+"/"+ff.getName ()); OutputStream adalah = FileOutputStream baru (LocalFile); ftp.retrievefile (ff.getName (), is); is.close (); }} ftp.logout (); Sukses = Benar; } catch (ioException e) {e.printstacktrace (); } akhirnya {if (ftp.isconnected ()) {coba {ftp.disconnect (); } catch (ioException ioE) {}}} return Success; } <pr Pre> </pr Pre>