/**
* sftp上传
*
* @param file 文件
* @param sftpPath sftp路径
* @throws Exception 异常
*/
private void sftpUploadNew(File file, String sftpPath) throws Exception {
try {
String host = "127.0.0.1"; // SFTP服务器地址
int port = "80"; // SFTP服务器端口号
String username = "xxxx"; // SFTP登录用户名
String password = "xxxxx"; // SFTP登录密码
// 本地文件路径
String localFilePath = file.getAbsolutePath();
JSch jsch = new JSch();
Session session = jsch.getSession(username, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
channelSftp.cd(driver.getMtSftpPath());
if (isExistDir(channelSftp, sftpPath)) {
} else {
channelSftp.mkdir(sftpPath);
channelSftp.cd(sftpPath);
}
InputStream in;
in = new BufferedInputStream(Files.newInputStream(file.toPath()));
// 上传文件到远程服务器
channelSftp.put(in, file.getName());
channelSftp.disconnect();
session.disconnect();
} catch (Exception e) {
throw new Exception("上传文件异常:" + e.getMessage(), e);
}
}
/**
* 判断目录是否存在并创建目录
*/
public static boolean isExistDir(ChannelSftp channelSftp, String directory) {
boolean isDirExistFlag = false;
try {
SftpATTRS sftpAttrS = channelSftp.lstat(directory);
isDirExistFlag = true;
return sftpAttrS.isDir();
} catch (Exception e) {
if ("no such file".equals(e.getMessage().toLowerCase())) {
isDirExistFlag = false;
}
}
return isDirExistFlag;
}
上传sftp方法类(基于java8)
最新推荐文章于 2024-07-05 14:51:01 发布