diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java index 37672874..e1ca47d0 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SFTPUtil.java @@ -1,7 +1,6 @@ package org.jeecg.common.util; import com.jcraft.jsch.*; -import org.apache.commons.compress.utils.Lists; import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.util.text.StringUtils; import org.slf4j.Logger; @@ -116,13 +115,15 @@ public class SFTPUtil { * @param uploadFileName 要上传的文件名称(重新定义的文件名称) * @param */ - public static Map upload(SftpConfig sftpConfig,boolean isConcat, String directory, String uploadFilePath, String uploadFileName) { - Map map = new HashMap(); + public static Map upload(ChannelSftp sftp, SftpConfig sftpConfig,boolean isConcat, String directory, String uploadFilePath, String uploadFileName) { + Map map = new HashMap(); map.put("code","0"); map.put("msg","上传成功"); - ChannelSftp sftp = null; +// ChannelSftp sftp = null; try{ - sftp = connect(sftpConfig); + if(sftp == null){ + sftp = connect(sftpConfig); + } try { if(isConcat){ directory = getDirectory(sftpConfig.getUploadpath(),directory); @@ -156,9 +157,9 @@ public class SFTPUtil { map.put("code","1"); map.put("msg","sftp异常:" + e.getMessage()); }finally { - if(sftp!=null){ - disConnect(sftp); - } +// if(sftp!=null){ +// disConnect(sftp); +// } } return map; } @@ -222,13 +223,16 @@ public class SFTPUtil { * @param downloadFile 下载的文件 * @param saveFile 存在本地的路径 */ - public static Map download(SftpConfig sftpConfig, String directory, String downloadFile, String saveFile) { - Map map = new HashMap(); + public static Map download(ChannelSftp sftp,SftpConfig sftpConfig, String directory, String downloadFile, String saveFile) { + Map map = new HashMap(); map.put("code","0"); map.put("msg","删除成功"); - ChannelSftp sftp = null; +// ChannelSftp sftp = null; try{ - sftp = connect(sftpConfig); + if(sftp == null){ + sftp = connect(sftpConfig); + map.put("sftp",sftp); + } OutputStream output = null; try { File localDirFile = new File(saveFile); @@ -263,9 +267,9 @@ public class SFTPUtil { map.put("code","1"); map.put("msg","sftp异常:" + e.getMessage()); }finally { - if(sftp!=null){ - disConnect(sftp); - } +// if(sftp!=null){ +// disConnect(sftp); +// } } return map; } @@ -373,8 +377,8 @@ public class SFTPUtil { * @param newname 目的文件名称 * @param */ - public static Map moveFile(SftpConfig sftpConfig, String oldpath, String directory, String newname) { - Map map = new HashMap(); + public static Map moveFile(SftpConfig sftpConfig, String oldpath, String directory, String newname) { + Map map = new HashMap(); map.put("code","0"); map.put("msg","上传成功"); ChannelSftp sftp = null; @@ -446,8 +450,8 @@ public class SFTPUtil { return map; } - public static Map moveFiles(SftpConfig sftpConfig, String directory, List list) { - Map map = new HashMap(); + public static Map moveFiles(SftpConfig sftpConfig, String directory, List list) { + Map map = new HashMap(); map.put("code","0"); map.put("msg","上传成功"); ChannelSftp sftp = null; @@ -526,6 +530,85 @@ public class SFTPUtil { return map; } + public static Map moveFiles(ChannelSftp sftp,SftpConfig sftpConfig, String directory, List list) { + Map map = new HashMap(); + map.put("code","0"); + map.put("msg","上传成功"); + try { + if(sftp == null){ + sftp = connect(sftpConfig); + } + try { + directory = getDirectory(sftpConfig.getUploadpath(), directory); + sftp.cd(directory); + } catch (SftpException e1) { + try { + mkdirs(directory, sftp); + } catch (SftpException e2) { + map.put("code", "1"); + map.put("msg", "ftp创建" + directory + "文件路径失败"); + } + } + Channel channel = null; + try { + StringBuffer sb = new StringBuffer(); + for(int item=0;item 0) { + int i = in.read(tmp, 0, 1024); + if (i < 0) break; + } + if (channel.isClosed()) { + System.out.println("exit-status: " + channel.getExitStatus()); + break; + } + try { + Thread.sleep(1000); + } catch (Exception ee) { + } + } + channel.disconnect(); + sb.append(newpath); + sb.append("|"); + } + String path = sb.toString(); + path = path.substring(0,path.length()-1); + map.put("data",path); + } catch (Exception e1) { + map.put("code","1"); + map.put("msg",e1.getMessage()); +// throw new RuntimeException("ftp创建文件路径失败" + directory); + }finally { + if(channel!=null){ + channel.disconnect(); + } + } + } catch (Exception e) { + map.put("code","1"); + map.put("msg","sftp异常:" + e.getMessage()); + }finally { + + } + return map; + } + /** * 删除文件 * @param directory 要删除文件所在目录