Sebuah proyek yang biasa saya lakukan di masa lalu, mengunggah file ke server FTP, dan sekarang saya memeriksanya. Ini relatif sederhana dan Anda bisa memahaminya dalam sekali jalan.
Lingkungan: Pertama, instal server FTP terlebih dahulu. Saya mengonfigurasinya secara lokal di Win8 dengan IIS. Anda dapat menemukan dokumen instalasi di Baidu.
1. Buat file konfigurasi FTP di direktori proyek Anda, direktori seperti yang ditunjukkan di bawah ini
01 ftpconfig.properties:
FTPIP = 10.73.222.29
ftpport = 21
ftpuser = wp
ftppwd = 04143114wp
ftpremotePath = D: // Bagikan
02 Kelas yang membaca konten spesifik di ftpconfig.properties:
Paket com.java.core.util; import java.io.ioException; import java.io.inputStream; import java.util.properties;/*** @author wangpei* @version dibuat: 6 Mei 2017 pada 9:42:40 pm Baca file konfigurasi ftp ftp* Mei 2017 di 9:42:40 pm Baca file konfigurasi ftp ftp* Mei 2017 pada 9:42:40 pm Baca file konfigurasi ftp ftp* Mei 2017 di 9:42:40 pm Baca file konfigurasi ftp ftp* Mei* di 9:42:40 pm Baca file konfigurasi ftp ftp* Mei* di 9:42:40 pm Baca file konfigurasi ftp ftp* publicping* publicpy* Properti Pribadi Properties; Public ReadfPppRoPerties () {is = this.getClass (). getResourceAsstream ("/ftpconfig.properties"); // Baca file konfigurasi ke dalam properti aliran input = properti baru (); coba {properties.load (IS); } catch (ioException e) {System.out.println ("File konfigurasi tidak ada .."); e.printstacktrace (); } akhirnya {if (null! = is) {try {is.close (); } catch (ioException e) {System.out.println ("Stream tertutup gagal .."); e.printstacktrace (); }}}} string publik getIp () {// Dapatkan alamat IP Return Properties.getProperty ("ftpip"); } public string getPort () {// Dapatkan port port dari server ftp return properties.getProperty ("ftpport"); } public String getUser () {// Dapatkan ftp login username return properties.getProperty ("ftpuser"); } public String getPWD () {// Dapatkan kata sandi login dari ftp server return properties.getProperty ("ftppwd"); } public String getRemotePath () {// Dapatkan direktori di mana file disimpan di server FTP dikembalikan properti.getProperty ("ftpremotePath"); }}03 Kelas Antarmuka untuk Mengunggah dan Unduh File
Paket com.java.web.service; import java.io.inputstream; impor org.apache.commons.net.ftp.ftpclient; impor com.java.core.util.readftpproperties;/** * @Author wangpei * @version dibuat: 6, 2017 AT 67 AT 67: AT 6.AUTHOR WANGPEI * @version Dibuat: 6, 2017 AT 67 AT 67: AT 6.AUTHOR WANGPEI * @Version: 6, 2017 AT 67 AT 67: AT 6.AUTHOR WANGPEI * @Version: 201, 2017 AT 67 AT 67 layer */antarmuka publik ftpservice {/ * * masuk ke ftp */public boolean loginftp (klien ftpclient, readftpproperties rfp); /* * Log out of ftp */ public boolean logout(FTPClient client);// /* * Upload the file to remotePath, whose name on ftp is inputStream */ public boolean uploadFile(FTPClient client, String remotePath, String fileNewName, InputStream inputStream, ReadFtpProperties rfp); / * * Unduh nama file file dari direktori RemotePath */ inputStream publik downfilebyftp (klien ftpClient, string remotePath, string fileName); /** Hapus file dengan direktori pathname di ftp*/ public boolean delfile (klien ftpclient, string pathname);}04 Kelas Implementasi Antarmuka untuk mengunggah dan mengunduh file
Paket com.java.web.service.serviceImpl; import java.io.ioException; import java.io.inputstream; import java.io.unsupportedencodingException; import java.net.socketexception; impor org.apache.commons.net.ftp.ftp.ftpp.ftpp.ftp.ftpp. org.apache.commons.net.ftp.ftpclient; impor org.apache.commons.net.ftp.ftpfile; import com.java.core.util.readftpproperties; import com.java.web. Deskripsi kelas*/kelas publik ftpserviceImpl mengimplementasikan ftpservice {public boolean loginftp (klien ftpclient, readfppproPerties rfp) {string ftpip = rfp.getip (); String ftpport = rfp.getport (); String ftpuser = rfp.getUser (); String ftppwd = rfp.getpwd (); // string fgtpremotePath = rfp.getRemotePath (); boolean b = false; coba {client.connect (ftpip, integer.parseint (ftpport)); } catch (NumberFormateException e) {System.out.println ("tidak dapat terhubung ke ftp"); mengembalikan false; } catch (SocketException e) {System.out.println ("tidak dapat terhubung ke ftp"); mengembalikan false; } catch (ioException e) {System.out.println ("tidak dapat terhubung ke ftp"); mengembalikan false; } catch (ioException e) {System.out.println ("tidak dapat terhubung ke ftp"); mengembalikan false; } client.setControlencoding ("UFT-8"); coba {b = client.login (ftpuser, ftppwd); } catch (ioException e) {System.out.println ("Login FTP Error"); LOGOUT (klien); // LOGOUT/DISCONNECT LINK FTP Server Return False; } return b; } public boolean logout (klien ftpclient) {boolean b = false; coba {b = client.logout (); // logout client.disconnect (); // disconnect} catch (ioException e) {return false; } return b; } public boolean unggahfile (klien ftpclient, string remotePath, string fileNewName, inputStream inputStream, readftpproperties rfp) {boolean b = false; coba {client.setFileType (ftpclient.binary_file_type); client.enterLocalPassiveMode (); if (remotePath! = null &&! "". Equals (remotePath.trim ())) {string [] paths = remotePath.split ("/"); untuk (string onePath: paths) {if (onePath == null || "" .equals (onePath.trim ())) {lanjutan; } onePath = string baru (onePath.getbytes ("UTF-8"), "iso-8859-1"); System.out.println ("OnePath =" + OnePath); if (! client.changeworkingDirectory (onePath)) {client.makedirectory (onePath); // Buat direktori server ftp. }}} b = client.storefile (string baru (filenewName.getbytes ("UTF-8"), "iso-8859-1"), inputStream); } catch (UnsupportedencodingException e) {return false; } catch (ioException e) {return false; } return b; } public InputStream downfilebyftp (ftpClient ftpClient, string remotePath, string fileName) {ftpfile [] fs; InputStream adalah = null; coba {// atur mode pasif ftpclient.enterLocalPassiveMode (); // atur ftpclient.setFileType (ftp.binary_file_type); // atur edit format ftpclient.setControlencoding ("UTF-8"); remotePath = remotePath.substring (0, remotePath.LastIndexOf (nama file)); fs = ftpclient.listFiles (remotePath); // direktori target rekursif untuk (ftpfile ff: fs) {if (ff.getname (). equals (fileename)) {// temukan file target adalah = ftpclient.retrievefeFeLeStream (new string (remotePath + ftpclient. "ISO-8859-1")); merusak; }}} catch (ioException e) {E.PrintStackTrace (); } return adalah; } public boolean delfile (ftpClient ftpclient, string pathname) {boolean b = false; coba {b = ftpclient.deleteFile (pathname); kembali b; } catch (Exception e) {return false; } akhirnya {logout (ftpclient); // Keluar/lepaskan tautan server ftp}}}}Kode ini mudah dimengerti, itu harus dipahami dengan membacanya sekali. Saya tidak akan menganalisisnya secara khusus di sini, terutama melihat komentar dalam kode.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.