赞
踩
问题:文件中有文件,但是调用FtpClient.listFiles(path);方法总是报错
解决办法:在读取文件之前加上ftpClient.enterLocalPassiveMode();这句话
/**
* 判断ftp服务器文件是否存在
* @param path
* @return
* @throws IOException
*/
public boolean existFile(String path) throws IOException {
boolean flag = false;
ftpClient.enterLocalPassiveMode();
FTPFile[] ftpFileArr = ftpClient.listFiles(path);
if (ftpFileArr.length > 0) {
flag = true;
}
return flag;
}
原因:
调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。