問題:在Java程序中,使用FTPClient下載FTP文件的時候,可以下載到FTP服務器上的文件夾,但是里面的文件沒有下載到本地。
分析:這個涉及到FTP在使用的過程中,客戶端和服務端連接過程中,端口的打開和關閉相關知識。
解決:在程序調用登錄方法之前,即執行“FTPClient ftpClient = null; ftpClient.login(username, password);”之前,加上一行代碼:ftpClient.enterLocalPassiveMode();這樣就可以了。
總結:1 在FTP服務中,涉及到客戶端和服務器端的連接,連接就會涉及到端口的打開問題;
2 而端口的打開中,又涉及到主動模式和被動模式。主動模式:客戶端開放端口給服務端用;被動模式:服務端開放端口給客戶端用。由於很多客戶端在防火牆內,開放端口給服務器端用比較困難。所以用被動模式的時候比較多。
3 如果涉及到了內網、局域網等環境時,出現FTP連接問題,也可以考慮是否是因為連接模式引起的。
參考:
https://blog.csdn.net/u011008029/article/details/49757059
https://www.cnblogs.com/huhaoshida/p/5412615.html
http://icelander.iteye.com/blog/1313986