FtpClient.storeFile返回false解决方法

使用的是springboot 操作ftp,

以前向ftp服务上传文件是ok的,但是今天突然上传失败,debug的时候发现:

下面这一句总是返回false,于是百度了一下
returnValue = ftpClient.storeFile(fileName, buffIn);

------------------------------

百度内容:

今天在利用FTP将客户端文件存储到服务器端时,在调用ftpClient.storeFile方法后,总是返回false,在百度之后,有提到说添加一行

 ftpClient.enterLocalPassiveMode();

就能解决这个问题,但是在测试之后还是出现,后来整了半天才知道,问题出在中文文件名身上。因此可在代码中添加如下代码:

ftpClient.setControlEncoding("UTF-8");

并在创建目录或者storeFile时,将文件名转换编码方式即可,如:

ftpClient.storeFile(new String(fileName.getBytes("UTF-8"),"iso-8859-1"),fiStream);

或者:

ftpClient.makeDirectory(new String(pathName.getBytes("UTF-8"),"iso-8859-1"));
即可解决这个问题

---------------------------

实际就是在原来的那条语句之前添加了模式的设置,模式为被动模式,

ftpClient.enterLocalPassiveMode();

returnValue = ftpClient.storeFile(fileName, buffIn);

那么主动模式可以不?

如果不设置,使用的是什么模式?

待研究。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值