Java用jcraft.jsch实现SFTP文件上传,往我的腾讯云上传文件没问题,但往用户的服务器上传文件就报 File not found
文件名:2022-03-02-付款单报表1646292874956.xls
连接代码
session = jsch.getSession(username, hostname, port); // 根据用户名,主机ip,端口获取一个Session对象
if (StringUtils.isNotBlank(password)) {
session.setPassword(password); // 设置密码
}
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config); // 为Session对象设置properties
session.setTimeout(timeout); // 设置timeout时间
session.connect(); // 通过Session建立链接
logger.error("SSH连接成功");
channel = session.openChannel("sftp"); // 打开SFTP通道
channel.connect(); // 建立SFTP通道的连接
logger.error("开启SFTP连接");
} catch (JSchException e) {
e.printStackTrace();
}
logger.error("SFTP连接信息 to ftpHost = " + hostname +": "+port+ ",as ftpUserName = " + username
+ ", returning: " + channel);
return (ChannelSftp) channel;
上传文件代码
try {
//上传文件
chSftp.put(inputStream, fileName, ChannelSftp.OVERWRITE); // 代码段3
} catch (SftpException e) {
logger.error("上传失败");
e.printStackTrace();
return false;
}
logger.error("上传成功");
return true;
FTP服务器是客户那边的不能动
上传文件你要先检查路径有没有,没有的话就要创建,有的话就能直接上传