java ftp上传下载,读取相关问题
-
上传下载相关问题
- 检查vsftp服务器文件
ftp上传上去的文件是否是正常文件,下载解压检查 - 检查下载路径是否正确
debug检查下载路径,下载路径不正确,下载后输出的文件也会报损坏或者格式错误 - 若是上传至服务器的文件格式不正确,检查上传格式
client.setFileType(FTP.BINARY_FILE_TYPE);
Windows上传至Linux FTP服务文件模式是不一样的,在ftpclient登录后,设置文件类型。 - 同样若是上传后格式正确,下载路径也是对的,检查下载时ftpclient设置的文件格式
client.setFileType(FTP.BINARY_FILE_TYPE);
- 检查vsftp服务器文件
-
java 读取ftp文件问题
- ftpclient.listNames(path) 读取不到ftp服务器上的文件(被动模式导致的问题)
首先检查路径是不是对的,路径不对读个毛。
然后检查vsftp服务器是什么模式,如果是被动模式的话,在login以后,加上ftpclient.enterRemotePassiveMode();设置被动模式 - 被动模式下,根路径问题
vsftp为被动模式情况下,设置的根路径,在ftpclient做操作时,不会生效(具体可以仔细研究为啥),相对路径读取时,依旧读取不到文件列表
ftpclient.printWorkingDirectory获取到根路径,然后拼接到相对路径前即可获取到
以上问题在主动模式下,正常情况下不会出现
- ftpclient.listNames(path) 读取不到ftp服务器上的文件(被动模式导致的问题)
-
changeWorkingDirectory不生效问题
- 明明当前工作路径是根路径,就是无法使用changeWorkingDirectory切换到存在的路径下
1、检查vsftp模式,被动模式下默认的根路径不会生效,可以ftpclient.printWorkingDirectory获取到根路径,然后拼接到需要切换的目录前,进行绝对路径的切换,相对路径切换不生效。
2、ftpclient.enterRemotePassiveMode();设置被动模式,然后尝试(未进行验证),如果还是不行,那就绝对路径切换。
- 明明当前工作路径是根路径,就是无法使用changeWorkingDirectory切换到存在的路径下