java ftp 上传下载,当前文件格式错误或者数据损坏 / 读取FTP文件列表为null值,等待时间很长,且不报错

  • 上传下载相关问题

    • 检查vsftp服务器文件
      ftp上传上去的文件是否是正常文件,下载解压检查
    • 检查下载路径是否正确
      debug检查下载路径,下载路径不正确,下载后输出的文件也会报损坏或者格式错误
    • 若是上传至服务器的文件格式不正确,检查上传格式
      client.setFileType(FTP.BINARY_FILE_TYPE);
      Windows上传至Linux FTP服务文件模式是不一样的,在ftpclient登录后,设置文件类型。
    • 同样若是上传后格式正确,下载路径也是对的,检查下载时ftpclient设置的文件格式
      client.setFileType(FTP.BINARY_FILE_TYPE);
  • java 读取ftp文件问题

    • ftpclient.listNames(path) 读取不到ftp服务器上的文件(被动模式导致的问题)
      首先检查路径是不是对的,路径不对读个毛。
      然后检查vsftp服务器是什么模式,如果是被动模式的话,在login以后,加上ftpclient.enterRemotePassiveMode();设置被动模式
    • 被动模式下,根路径问题
      vsftp为被动模式情况下,设置的根路径,在ftpclient做操作时,不会生效(具体可以仔细研究为啥),相对路径读取时,依旧读取不到文件列表
      ftpclient.printWorkingDirectory获取到根路径,然后拼接到相对路径前即可获取到

    以上问题在主动模式下,正常情况下不会出现

  • changeWorkingDirectory不生效问题

    • 明明当前工作路径是根路径,就是无法使用changeWorkingDirectory切换到存在的路径下
      1、检查vsftp模式,被动模式下默认的根路径不会生效,可以ftpclient.printWorkingDirectory获取到根路径,然后拼接到需要切换的目录前,进行绝对路径的切换,相对路径切换不生效。
      2、ftpclient.enterRemotePassiveMode();设置被动模式,然后尝试(未进行验证),如果还是不行,那就绝对路径切换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值