java FTPClient 连接FTP服务器,上传文件不能以中文名字保存

youthflies 2012-03-23 10:21:16

FTPClient ftpClient = new FTPClient();
FileInputStream fis = null;

try {
ftpClient.connect("172.22.214.182", 21);
} catch (SocketException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (IOException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
try {
ftpClient.login("root", "toor");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
} catch (IOException e3) {
// TODO Auto-generated catch block

e3.printStackTrace();
}
// ftpClient.setControlEncoding("GBK");
//FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
// conf.setServerLanguageCode("zh");


System.out.println(ftpClient.getControlEncoding()+fileName);
BufferedInputStream buffIn=null;

try
{
buffIn=new BufferedInputStream(new FileInputStream(fileName));

boolean result= ftpClient.storeFile(f.getName(), buffIn);
}

一旦文件名字是中文,这一句就会出错result= ftpClient.storeFile(f.getName(), buffIn),如果改成result= ftpClient.storeFile("hello", buffIn),这样就没事,请问如何设置成兼容中文呢,是从代码上设置,还是从FTP服务器上设置。令外,在CMD下可以用put命令,成功上传中文文件。
...全文
463 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
youthflies 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wula0010 的回复:]
编码设置问题:

Java code

ftp.connect(ip, port);
//下面三行代码必须要,而且不能改变编码格式,否则不能正确下载中文文件
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServe……
[/Quote]
加上那三行上传时,也不能以中文名字保存。不知道怎么解决呢……
wula0010 2012-03-23
  • 打赏
  • 举报
回复
编码设置问题:

ftp.connect(ip, port);
//下面三行代码必须要,而且不能改变编码格式,否则不能正确下载中文文件
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");

//如果采用默认端口,可以使用ftp.connect(url) 的方式直接连接FTP服务器
ftp.login(username, password);//登录
youthflies 2012-03-23
  • 打赏
  • 举报
回复
大虾在哪里?

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧