java FTPClient使用中常见的问题

1.storeFile返回false解决方法

(1)在ftp连接成功后,添加ftpClient.enterLocalPassiveMode();

(2)字符编码需要修改:ftpClient.storeFile(new String(filename.getBytes("UTF-8"),"iso-8859-1"), inputStream);

2.retrieveFile返回false解决方法

(1)同样,进入passivemode模式

(2)修改字符编码:ftp.retrieveFile(new String(ff.getName().getBytes("utf-8"),"iso-8859-1"), is);

3.不知道将要部署的ftp服务器可以接受的编码格式

可以按照如下操作,在本地设置一个变量,然后就可以设置需要的编码格式了,当然服务器端的编码是不能变的StandardCharsets.ISO_8859_1

//尝试开启ftp的utf-8编码,如果成功后面的编码都用utf-8
if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {
            Constants.LOCAL_CHARSET = "UTF-8";
//笔者尝试设置此编码,发现出错,具体不清楚原因
//            ftpClient.setControlEncoding(Constants.LOCAL_CHARSET);
        }
//接下来就可以这么使用了
new String(remoteDownLoadPath.getBytes(Constants.LOCAL_CHARSET), Constants.SERVER_CHARSET)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值