全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java使用SFTP上传文件到服务器的简单使用

最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询。具体代码如下所示:

 /**
  * 将文件上传到服务器
  * 
  * @param filePath
  *   文件路径
  * @param channelSftp
  *   channelSftp对象
  * @return
  */
 public static boolean uploadFile(String filePath, ChannelSftp channelSftp) {
  OutputStream outstream = null;
  InputStream instream = null;
  boolean successFlag = false;
  try {
   File isfile = new File(filePath);
   if (isfile.isFile()) {
    outstream = channelSftp.put(isfile.getName());
    File file = new File(filePath);
    if (file.exists()) {
     instream = new FileInputStream(file);
     byte b[] = new byte[1024];
     int n;
     while ((n = instream.read(b)) != -1) {
      outstream.write(b, 0, n);
     }
     outstream.flush();
    }
    successFlag = true;
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (instream != null) {
     instream.close();
    }
    if (outstream != null) {
     outstream.close();
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
  return successFlag;
 }
 private static Session initJschSession()
   throws JSchException {
  int ftpPort = 0;
  String ftpHost = "";
  String port = "00"; //sftp的端口号
  String ftpUserName = ""; //用户名
  String ftpPassword = ""; //链接的密码
  String privateKey = ""; //
  String passphrase = "";
  if (port != null && !port.equals("")) {
   ftpPort = Integer.valueOf(port);
  }
  JSch jsch = new JSch(); // 创建JSch对象
  if (StringUtils.isNotBlank(privateKey)
    && StringUtils.isNotBlank(passphrase)) {
   jsch.addIdentity(privateKey, passphrase);
  }
  if (StringUtils.isNotBlank(privateKey)
    && StringUtils.isBlank(passphrase)) {
   jsch.addIdentity(privateKey);
  }
  jsch.getSession(ftpUserName, ftpHost, ftpPort);
  Session session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // 根据用户名,主机ip,端口获取一个Session对象
  if (StringUtils.isNotBlank(ftpPassword)) {
   session.setPassword(ftpPassword); // 设置密码
  }
  return session;
 }
 /**
  * 获取ChannelSftp链接
  * 
  * @param timeout
  *   超时时间
  * @return 返回ChannelSftp对象
  * @throws JSchException
  */
 public static ChannelSftp getChannelSftp(Session session, int timeout)
   throws JSchException {
  Channel channel = null;
  Properties config = new Properties();
  config.put("StrictHostKeyChecking", "no");
  session.setConfig(config); // 为Session对象设置properties
  session.setTimeout(timeout); // 设置timeout时间
  session.connect(); // 通过Session建立链接
  channel = session.openChannel("sftp"); // 打开SFTP通道
  channel.connect(); // 建立SFTP通道的连接
  return (ChannelSftp) channel; 
 }
 /**
  * 断开sftp链接
  * 
  * @param session
  *   会话
  * @param channel
  *   通道
  */
 public static void closeConnection(Channel channel, Session session) {
  try {
   if (session != null) {
    session.disconnect(); //关闭session链接
   }
   if (channel != null) {
    channel.disconnect(); //断开连接
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

这里的用户名密码都是自己设置,这里的方法进行了简单的封装,方便使用。

以上所述是小编给大家介绍的Java使用SFTP上传文件到服务器的简单使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# 使用sftp上传文件  # sftp服务器  # Java实现读取SFTP服务器指定目录文件的方法  # Java连接sftp服务器实现上传下载功能  # Java连接服务器的两种方式SFTP和FTP  # 详解Java使用Jsch与sftp服务器实现ssh免密登录  # java使用SFTP上传文件到资源服务器  # Java 项目连接并使用 SFTP 服务的示例详解  # 小编  # 上传文件  # 都是  # 在此  # 给大家  # 找了  # 所示  # 所述  # 给我留言  # 感谢大家  # 进行了  # 文件上传  # 端口号  # 疑问请  # 有任何  # file  # exists  # put  # FileInputStream  # getName 


相关文章: 建站之星代理如何获取技术支持?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  如何访问已购建站主机并解决登录问题?  如何在宝塔面板中创建新站点?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  如何快速登录WAP自助建站平台?  大连网站制作公司哪家好一点,大连买房网站哪个好?  招商网站制作流程,网站招商广告语?  c# 在ASP.NET Core中管理和取消后台任务  网页设计网站制作软件,microsoft office哪个可以创建网页?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  香港服务器部署网站为何提示未备案?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  ,制作一个手机app网站要多少钱?  如何用wdcp快速搭建高效网站?  外贸公司网站制作哪家好,maersk船公司官网?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何用5美元大硬盘VPS安全高效搭建个人网站?  高防服务器租用如何选择配置与防御等级?  ,网站推广常用方法?  建站主机数据库如何配置才能提升网站性能?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何通过wdcp面板快速创建网站?  IOS倒计时设置UIButton标题title的抖动问题  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  金*站制作公司有哪些,金华教育集团官网?  长沙企业网站制作哪家好,长沙水业集团官方网站?  深入理解Android中的xmlns:tools属性  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  MySQL查询结果复制到新表的方法(更新、插入)  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  javascript中对象的定义、使用以及对象和原型链操作小结  网站制作公司,橙子建站是合法的吗?  如何在腾讯云免费申请建站?  图册素材网站设计制作软件,图册的导出方式有几种?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  小建面朝正北,A点实际方位是否存在偏差?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  高性价比服务器租赁——企业级配置与24小时运维服务  如何正确选择百度移动适配建站域名?  制作公司内部网站有哪些,内网如何建网站?  如何通过商城免费建站系统源码自定义网站主题?  如何快速选择适合个人网站的云服务器配置?  建站主机选购指南:核心配置优化与品牌推荐方案  定制建站策划方案_专业建站与网站建设方案一站式指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。