62,621
社区成员
发帖
与我相关
我的任务
分享/**
* 上传单个文件到FTP服务器
* @param path 目录路径
* @param filename 目标文件名
* @param file 待上传的文件
* @param clear 是否删除已上传文件
*/
public static boolean ftpUpload(String path,String filename,File file, boolean clear){
FTPClient ftpClient = null;
FileInputStream fis = null;
try {
ftpClient = ftpConnect();
if(ftpClient == null){
log.info("连接FTP失败!");
return false;
}
log.info("paht:" + path);
for(String p : path.split("\\" + File.separator)){
if(!ftpClient.changeWorkingDirectory(p)){
if(!ftpClient.makeDirectory(p)){
log.info("创建目录失败,没有权限!");
return false;
}
ftpClient.changeWorkingDirectory(p);
}
}
log.info("FTP连接成功");
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
fis = new FileInputStream(file);
if(ftpClient.storeFile(filename, fis)){
log.info("上传到FTP成功," + filename);
}else{
log.info("上传到FTP失败," + filename);
return false;
}
return true;
} catch (Exception e) {
log.error("上传到FTP异常:", e);
return false;
}finally{
try {
if(ftpClient != null){
ftpClient.disconnect();
}
if(fis != null){
fis.close();
}
if(clear && file.exists()){
file.delete();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}