Java 向FTP服务器传输文件,文件名称带中文的话 文件名乱码 全是???
解决办法
// 修改编码 解决中文名称乱码
client.storeFile(new String(remoteFileName.getBytes("UTF-8"),"ISO-8859-1"), inputStream);
完整代码
public void uploadFileToFtp(String remoteDirectory,String localFilePath){
try {
if (loginFlag) {
// 设置传输模式为二进制
client.setFileType(FTP.BINARY_FILE_TYPE);
// 切换到指定的远程目录
client.changeWorkingDirectory(remoteDirectory);
// 上传文件
File localFile = new File(localFilePath);
FileInputStream inputStream = new FileInputStream(localFile);
String remoteFileName = localFile.getName();
LOGGER.info("FTP remoteFileName : [{}]",remoteFileName);
// 修改编码 解决中文名称乱码
client.storeFile(new String(remoteFileName.getBytes("UTF-8"),"ISO-8859-1"), inputStream);
LOGGER.info("文件上传成功!");
inputStream.close();
}else {
LOGGER.info("FTP 未连接.....");
}
} catch (IOException e) {
LOGGER.error("文件上传失败 : 【{}】",e);
e.printStackTrace();
}
}