项目中使用到了FTPclient上传文件,在本地一切正常。
可是上传到java项目上传到服务器后,文件上传一直为空。
查阅资料:在JAVA中将FTPClient设置为被动模式即可解决问题。
ftpClient = new FTPClient();
ftpClient.setControlEncoding("utf-8");
ftpClient.connect(hostname, port); //连接ftp服务器
ftpClient.login(username, password); //登录ftp服务器
//设置为被动模式 (如果出现不能上传成功到情况请注释这一行 )
ftpClient.enterLocalPassiveMode();
调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。
FTP被动模式和主动模式的区别
https://blog.csdn.net/SUNbrightness/article/details/89060263