91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java使用SFTP上傳文件到服務器的簡單使用

發布時間:2020-08-28 08:19:36 來源:腳本之家 閱讀:1016 作者:唐凱 欄目:編程語言

最近用到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上傳文件到服務器的簡單使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大冶市| 鹤岗市| 琼结县| 日喀则市| 拉孜县| 营口市| 民县| 怀化市| 象州县| 金川县| 仁寿县| 西和县| 安宁市| 龙门县| 上杭县| 介休市| 边坝县| 晋江市| 曲阳县| 襄樊市| 西乌| 江阴市| 剑川县| 新蔡县| 海淀区| 无棣县| 织金县| 威远县| 弥渡县| 会泽县| 康乐县| 米林县| 盐亭县| 恩施市| 丽江市| 惠来县| 江西省| 天水市| 平陆县| 资阳市| 怀宁县|