FTP 调用 FTPClient.listFiles()或者FTPClient.retrieveFile()方法卡住了,咋解决(亲测有效)

2022-12-02 08:52:02 浏览数 (1)

目录

  • 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()。

0 人点赞