Java用jcraft.jsch实现SFTP文件上传,往我的腾讯云上传文件没问题,但往用户的服务器上传文件就报 File not found

问题遇到的现象和发生背景

Java用jcraft.jsch实现SFTP文件上传,往我的腾讯云上传文件没问题,但往用户的服务器上传文件就报 File not found

img

问题相关代码

文件名: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;

运行结果及报错内容

img

我的解答思路和尝试过的方法

FTP服务器是客户那边的不能动

上传文件你要先检查路径有没有,没有的话就要创建,有的话就能直接上传