/**
* 上传文件到SFTP服务器
*
* @param remotePath sftp服务器路径
* @param fileName sftp服务器文件名
* @param closeFlag 是否要关闭本次SFTP连接: true-关闭, false-不关闭
* @param filePathFlag 是否要创建远程的指定目录: true-创建, false-不创建
* @throws IOException
*/
public boolean upFile2(String remotePath, String fileName, InputStream input,
boolean closeFlag, boolean filePathFlag) throws Exception {
boolean flag = false;
try {
// 判断是否要在远程目录上创建对应的目录
if (filePathFlag) {
String[] dirs = remotePath.split("\\/");
if (dirs == null || dirs.length < 1) {
dirs = remotePath.split("\\\\");
}
this.channel.cd("/");
for (int i = 0; i < dirs.length; i++) {
if (dirs[i] != null && !"".equals(dirs[i])) {
boolean dirExists = this.openDirs(dirs[i]);
if (!dirExists) {
this.channel.mkdir(dirs[i]);
this.channel.cd(dirs[i]);
}
}
}
this.channel.cd("/");
}
this.channel.cd(remotePath);
this.channel.put(input, fileName);
flag = true;
} catch (SftpException e) {
throw new RuntimeException("文件上传失败!");
} finally {
if (input != null) {
try {
input.close();
} catch (Exception localException1) {
throw new RuntimeException("输入流关闭失败!");
}
}
// 判断是否要关闭本次SFTP连接
if (closeFlag) {
disconnect();
}
}
return flag;
}
上传文件到sftp服务器
最新推荐文章于 2024-08-21 15:31:53 发布