ftp在传输文件到对方服务器时,有时能传成功,有时失败。然后打日志,才发现是ftp传输时,端口会出现阻塞情况,然后加上
ftpClient.enterLocalPassiveMode();
这一行代码,传输文件时,会自动开通一个专门的端口,来传输文件
public static boolean uploadFile( String pathname, String fileName, InputStream inputStream){
boolean flag = false;
ftpClient.setControlEncoding("UTF-8");
try {
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.makeDirectory(pathname);
//这行代码十分重要,因为到生产环境 linux上,安全限制,某些端口没有开启,出现阻塞
//而下面这行代码就是,ftp连接时,会开通一个专门的端口来传输数据
ftpClient.enterLocalPassiveMode();
ftpClient.changeWorkingDirectory(pathname);
ftpClient.storeFile(fileName, inputStream);
inputStream.close();
flag = true;
} catch (Exception e) {
throw new BizException(e);
}
return flag;
}
版权声明:本文为jianxzjxz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。