50,541
社区成员
发帖
与我相关
我的任务
分享
public boolean ftpUpload(String path, Map<String, File> files, boolean clear){
FTPClient ftpClient = null;
FileInputStream fis = null;
try {
ftpClient = ftpConnect();
if(ftpClient == null){
log.info("连接FTP失败!");
return false;
}
path = changePath(path);
log.info("path:" + path);
for(String p : path.split("\\" + File.separator)){
if(StringUtil.isNullOrBlank(p)) continue;
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);
ftpClient.enterLocalPassiveMode();
Set<String> keys = files.keySet();
for(String key : keys){
fis = new FileInputStream(files.get(key));
if(ftpClient.storeFile(key, fis)){
log.info("上传到FTP成功," + key);
}else{
log.info("上传到FTP失败," + key);
return false;
}
if(fis != null)
fis.close();
}
return true;
} catch (Exception e) {
log.error("上传到FTP异常", e);
return false;
}finally{
try {
if(ftpClient.isConnected()){
ftpClient.disconnect();
}
if(fis != null){
fis.close();
}
//清理临时文件
if(clear && files.size() != 0){
for(String key : files.keySet()){
if(files.get(key).exists()){
files.get(key).delete();
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}