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文件上传

  • 2015年11月19日 15:16
  • 261KB
  • 下载

Java实现FTP与SFTP文件上传

SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SF...

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

文章出处:http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html

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

转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html JSch是Java Secure Channel的缩写。JS...

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

JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到...

JSch:纯JAVA实现SFTP文件上传和下载

原文链接:https://my.oschina.net/hetiangui/blog/137357 如果你想用纯JAVA实现SFTP文件上传或下载,或者是想纯JAVA连接到SSH2服务器上执行命令,那...

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

JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到...

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

转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html JSch是Java Secure Channel的缩...

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

JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java sftp文件上传核心代码
举报原因:
原因补充:

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