目录
- 1 解决
1 解决
【解决办法】 调用 FTPClient.listFiles()或者FTPClient.retrieveFile()方法前,先调用一下FTPClient.enterLocalPassiveMode()
记住一定是两行代码中间不能有其他代码;
格式就下面的,两行代码中间不能有其他的代码
代码语言:javascript复制【测试范例】
示例1:
ftpClient.enterLocalPassiveMode();
FTPFile[] fs = ftpClient.listFiles();
示例2:
ftpClient.enterLocalPassiveMode();
InputStream ins = ftpClient.retrieveFileStream(remotefilePath);
示例3:
ftpClient.enterLocalPassiveMode();
InputStream ins = ftpClient.retrieveFile(remotefilePath, outputStream);
【问题扩展】 如果你的程序在自己电脑上可以正常下载FTP文件,但是上线后确不可以了,下载文件假死,请核查是不是生产环境服务器的防火墙没有关闭。 如果有特殊原因,生产环境服务器防火墙要开着,那建议在写Java代码读取文件时,用上FTPClient.enterLocalPassiveMode()。