JAVA使用FTPClient上传文件时总是为空
分析:Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;而Pasv模式就是服务端S打开一个端口等待客户端C去建立一个数据连接。
解决:默认情况下,FTPCLIENT用的是port模式,可以在FTPCLIENT原码中看到
模式是客户端发起的,代码上加入 ftpClient.enterLocalPassiveMode(); 就可以了
这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。这样做是因为ftp server可能每次开启不同的端口来传输数据,但是在linux上或者其他服务器上面,由于安全限制,可能某些端口没有开启,所以就出现阻塞。