1.7-15之前旧的向ftp上传文件的方法,有写临时文件步骤的


/**
* Description: 向FTP服务器上传文件
* @param ftpPath FTP服务器文件存放路径
* @param multipartFile 上传到FTP服务器上的文件
* @return 成功返回文件名,比如 uuid.jpg,失败返回null
*/
/* public String uploadFileToFtpService(String ftpPath, MultipartFile multipartFile) {

//创建ftp客户端
FTPClient ftp = new FTPClient();
// 返回的文件名
String fileName = null;


try {
//FTP服务器端口,默认21,使用默认端口可以不写
ftp.connect(ftpHost,Integer.parseInt(ftpPort));// 连接FTP服务器

// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftp.login(ftpUsername, ftpPassword);// 登录

if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
logger.info("登录成功");
ftp.setControlEncoding(LOCAL_CHARSET);
ftp.enterLocalPassiveMode();//设置被动模式
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);//设置传输模式,一定要设置二进制传输格式
}else{
//登录失败返回Null
ftp.disconnect();
return null;
}

*//*该部分为逐级创建*//*
String[] split = ftpPath.split("/");
for (String str : split) {
if(StringUtils.isBlank(str)) {
continue;
}
if (!ftp.changeWorkingDirectory(str)) {//注意这步必须加上进入目录,否则当目录不存在时候只创建目录不进入则文件写入有问题
//防止中文编码导致目录找不到
String directory = new String(str.getBytes(LOCAL_CHARSET),DEFAULT_CHARSET);
//目录不存在则创建目录
ftp.makeDirectory(directory);
//更换目录到当前目录,否则目录不存在时只是创建目录而不能写入文件到该目录
ftp.changeWorkingDirectory(directory);
}
}

//截取文件格式后缀
String fileSuffix = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf(".") + 1);
//uuid.格式 是文件名
fileName =UUID.randomUUID() + "."+fileSuffix;

//选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法
File tempFile = File.createTempFile(String.valueOf(UUID.randomUUID()), fileSuffix);
multipartFile.transferTo(tempFile);

//退出虚拟机时删除生成的临时文件
tempFile.deleteOnExit();

logger.info("临时文件路径: {}",tempFile.getAbsolutePath());

//文件以流形式二进制传输到ftp服务器
FileInputStream input = new FileInputStream(tempFile);
//
Boolean flag = ftp.storeFile(new String(fileName.getBytes(LOCAL_CHARSET),DEFAULT_CHARSET), input);

input.close();
ftp.logout();

if(!flag){
//文件上传失败,可能是权限,防火墙等问题
logger.info("文件上传失败");
return null;
}
} catch (IOException e) {
logger.error(e.getMessage());
return null;
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}

return fileName;

}*/

posted @   江南小镇的一缕阳光  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示