解决本地文件上传到FTP成功部署到服务器返回false的问题
昨天部署项目的时候遇到这个问题,其实文件是可以上传上去但是大小是0(和没上传成功没两样),异常代码内部操作就是storeFIle()这个方法:
// 创建用户配置文件
boolean success = uploadFile(order.getOrderName(), USER_CONFIG_CONTENT.replace("username", order.getOrderName()), USER_CONFIGURE_PATH);
if(!success){
throw new BusinessException("创建ftp配置文件异常");
}
看网上说的一些解决办法大部分都说要加下面这行代码:
this.ftpClient.enterLocalPassiveMode();
this.ftpClient.login(this.user, this.password);
// 设置传输协议
this.ftpClient.enterLocalPassiveMode();
//this.ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE);
this.ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // 二级制传输
这段代码加上后我也试了根本不好用好伐!本地的时候这行代码我是注释的,所以本地可以上传上去照理说换到Linux下不可能不行。
头发挠掉几根后(解决方案)
我的解决方案就是在linux查看你的防火墙是否开启:
systemctl status firewalld
如果说是active的就把它关了:
systemctl stop firewalld
亲测可用。