java sftp文件上传核心代码

原创 2015年11月19日 15:20:03
package sftp;


import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.util.Properties;  
  
import com.jcraft.jsch.Channel;  
import com.jcraft.jsch.ChannelSftp;  
import com.jcraft.jsch.JSch;  
import com.jcraft.jsch.Session;  
import com.jcraft.jsch.SftpException;  
  
public class SFTPUtil {  
      
    private String host = "172.30.104.40";  
    private String username="weblogic";  
    private String password="weblogic";  
    private int port = 22;  
    private ChannelSftp sftp = null;  
    private static final  String linuxFileSeparator = "/";
    
    public SFTPUtil(){}
    
    public SFTPUtil(String host, String username, String password, int port){
    this.host = host;
    this.username = username;
    this.password = password;
    this.port = port;
    }
    /** 
     * connect server via sftp 
     */  
    public void connect() {  
        try {  
            if(sftp != null){  
                System.out.println("sftp is not null");  
            }  
            JSch jsch = new JSch();  
            jsch.getSession(username, host, port);  
            Session sshSession = jsch.getSession(username, host, port);  
            System.out.println("Session created.");  
            sshSession.setPassword(password);  
            Properties sshConfig = new Properties();  
            sshConfig.put("StrictHostKeyChecking", "no");  
            sshSession.setConfig(sshConfig);  
            sshSession.connect();  
            sshSession.setTimeout(1000*60*10);
            System.out.println("Session connected.");  
            System.out.println("Opening Channel.");  
            Channel channel = sshSession.openChannel("sftp");  
            channel.connect();  
            sftp = (ChannelSftp) channel;  
            System.out.println("Connected to " + host + ".");  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
    /** 
     * Disconnect with server 
     */  
    public void disconnect() {  
        if(this.sftp != null){  
            if(this.sftp.isConnected()){  
                this.sftp.disconnect();  
            }else if(this.sftp.isClosed()){  
                System.out.println("sftp is closed already");  
            }  
        }  
  
    }  
  
      
    public void download(String remoteDirectory, String remoteDownloadFileName, String localSaveFilePath) {  
        try {  
            this.sftp.cd(remoteDirectory);  
            File file = new File(localSaveFilePath);  
            this.sftp.get(remoteDownloadFileName, new FileOutputStream(file)); 
            System.out.println("download remote file[" + remoteDirectory + linuxFileSeparator + remoteDownloadFileName + "] to local " + localSaveFilePath);
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
      
    /** 
     * upload one file to the server 
     */  
    public void upload(String localFilePath, String remoteFileDirectory) {  
        try {  
            File file = new File(localFilePath);  
              
            if(file.isFile()){  
                System.out.println("localFile : " + file.getAbsolutePath());  
                System.out.println("remotePath:" + remoteFileDirectory);  
                this.sftp.cd(remoteFileDirectory);
                this.sftp.put(new FileInputStream(file), file.getName());  
                System.out.println("=========upload file for " + localFilePath);  
            }  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (SftpException e) {  
            e.printStackTrace();  
        }  
    }  
  
    /** 
     * @return the host 
     */  
    public String getHost() {  
        return host;  
    }  
  
    /** 
     * @param host the host to set 
     */  
    public void setHost(String host) {  
        this.host = host;  
    }  
  
    /** 
     * @return the username 
     */  
    public String getUsername() {  
        return username;  
    }  
  
    /** 
     * @param username the username to set 
     */  
    public void setUsername(String username) {  
        this.username = username;  
    }  
  
    /** 
     * @return the password 
     */  
    public String getPassword() {  
        return password;  
    }  
  
    /** 
     * @param password the password to set 
     */  
    public void setPassword(String password) {  
        this.password = password;  
    }  
  
    /** 
     * @return the port 
     */  
    public int getPort() {  
        return port;  
    }  
  
    /** 
     * @param port the port to set 
     */  
    public void setPort(int port) {  
        this.port = port;  
    }  
  
    /** 
     * @return the sftp 
     */  
    public ChannelSftp getSftp() {  
        return sftp;  
    }  
  
    /** 
     * @param sftp the sftp to set 
     */  
    public void setSftp(ChannelSftp sftp) {  
        this.sftp = sftp;  
    }  
  
      
    public static void main(String[] args) {  
        SFTPUtil ftp= new SFTPUtil();  
        ftp.connect();  
        ftp.upload("c:\\RpStatisticsAmountVO.java", "/home/weblogic/job");  
        ftp.download("/home/weblogic/job", "RpStatisticsAmountVO.java", "d:\\RpStatisticsAmountVO.java");
        ftp.disconnect();  
    }  
  
  

}  



项目下载地址:http://download.csdn.net/download/qq_14946627/9282783

版权声明:内容仅供个人学习

使用java进行sftp上传文件到服务器

package com.files.upload; import java.util.Map; import java.util.Properties; import java.util...
  • DCBTB
  • DCBTB
  • 2016年06月17日 18:06
  • 3263

sftp 3:permission denied Java

JAVA SFTP/VSFTP 3:permission denied Java
  • antonia1991
  • antonia1991
  • 2017年07月25日 12:59
  • 783

sftp 上传文件

public function SftpUpload($sftpinfo=[],$localfile='',$remotefile=''){ $connection = ssh2_conne...
  • liuxin_0725
  • liuxin_0725
  • 2018年01月09日 16:34
  • 39

Java实现的SFTP(文件上传详解篇)

文章出处:http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html
  • biran1980
  • biran1980
  • 2014年11月13日 11:40
  • 1595

(1) java通过sftp上传文件

Linux操作系统我们经常使用ssh中的ftp,sftp连接服务器,做相应操作。 如何通过java代码的形式采用sftp连接到服务器,进行文件上传下载等操作呢? 第一步,引入依赖包     ...
  • yhl_jxy
  • yhl_jxy
  • 2017年05月22日 23:32
  • 5052

java上传文件通过SFTP

转载链接:http://blog.csdn.net/h396071018/article/details/9020765 JSch是Java Secure Channel的缩写。JSch是一个SSH...
  • qq5132834
  • qq5132834
  • 2017年01月11日 16:26
  • 261

freemarker+ajax+Spring mvc+SFTP上传文件

由于freemarker的ftl文件没法iframe进来文件(或者我不知道怎么if)
  • fanyuna
  • fanyuna
  • 2014年11月20日 22:07
  • 5553

使用Renci.SshNet实现sftp文件上传和下载

使用Renci.SshNet实现sftp文件上传和下载
  • wuyb_2004
  • wuyb_2004
  • 2016年06月21日 18:17
  • 1119

Java 使用 SFTP 实现文件上传下载(二)

package com.lijy.util; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import c...
  • yewen1234
  • yewen1234
  • 2017年06月14日 18:41
  • 1715

sftp 文件上传 跨服务器 java

最近公司搞服务器迁移想把大量图片搞一个文件服务器 后续上传图片就采用sftp协议方式上传  参考了一篇blog   http://blog.csdn.net/haidage/article/deta...
  • majun_guang
  • majun_guang
  • 2015年05月22日 16:01
  • 1050
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java sftp文件上传核心代码
举报原因:
原因补充:

(最多只允许输入30个字)