FTP文件上传失败

上周给河北一客户做一个数据导入功能,报错后将错误log日志及报错的文件上传到FTP上,方便追溯。用的jdk1.6,在网上找了个jar包,本地测试的时候一切顺利,就让客户那边测试,测试发现报错后log日志能传上去,原文件一直传不上去。我们用的FTP服务器是公司的,客户用的是他们自己搭的FTP服务器,所以我们就连了下客户的FTP进行调试:

发现FTPClient.storeFile();这个方法返回了false,

跟进去发现连接模式为被动模式并且在创建服务器连接时这个ip地址是本地局域网ip,端口号也没有。所以就想到了连接问题,找到__dataConnectionMode赋值的地方,确认应该使用enterLocalPassiveMode()这个方法。调用下FTPClient.enterLocalPassiveMode();放在FTPClient.storeFile()方法前面再次测试:

这次连接服务器的ip也变成了客户服务器的ip,端口也新开了一个,上传文件成功。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180421G0R73100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券