FTPClient.storeFile()返回false的原因
Debug搞了一晚上,什么都看过了,最后总算是自己茅塞顿开发现了问题。
FTPClient会返回false的原因有很多,
首先有编码错误的,要加上:
ftpClient.setControlEncoding("UTF-8");
其次有没有启动被动模式的:
ftpClient.enterLocalPassiveMode();
但要是到这里你还是没解决问题的话,你就要按这个步骤排查一下问题了:
-
请你尝试一下用浏览器/资源管理器/其他ftp客户端进入你的ftp的ip地址,如果进不去那就可能是ftp没有打开或者服务器有防火墙你没设置好端口。
-
如果你可以进入ftp的ip地址并查看里面的内容,说明ftp链接正常,那么好好看看你的
ftpClient.changeWorkingDirectory(path)
里的path参数是什么吧,然后到相应的服务器去查看ftp文件夹的权限,如图:
这样问题就很明显了,我上传的文件夹的所属仍然是root的,而不是我自己定义的ftp的用户,那么我肯定会上传不上去。
这时候只要#chown ftpuser.ftpuser box_images
便完事了。