精华内容
下载资源
问答
  • JavaSFTP上传文件

    2018-08-03 15:47:12
    Java 操作SFTP上传文件下载案例,很值得看的,Java 操作SFTP上传文件下载案例,很值得看的。
  • Java sftp上传文件 三种方法

    千次阅读 2018-06-27 17:12:33
    最近工作中需要利用sftp上传文件,因为各种原因三种方法都试过了。找到个可以用。现在把我已经试用的三种方法简单的介绍下:一:jsch-0.1.54.jar 所支持的方法在linux与linux服务器之间用这个方法进行sftp交互,...

    最近工作中需要利用sftp上传文件,因为各种原因三种方法都试过了。找到个可以用。现在把我已经试用的三种方法简单的介绍下:

    一:jsch-0.1.54.jar  所支持的方法

    在linux与linux服务器之间用这个方法进行sftp交互,容易报错。对环境要求比较高,jdk1.8 以上,然后对两个服务器之间的ssh版本也有要求,有些版本下也容易出错,我在工作中遇到的情况是 ssh 6.6    5.1 都没有问题,但是在7.3的版本就遇到了问题,例如com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read。用网上提供的方法,也成功不了。最后就弃用了这种方法。

            这种方法例子很多,代码就不贴了。


    二:j2ssh-core-0.2.9.jar 所支持的方法

    这个方法,主要问题就是在执行程序中,第一次登陆会在控制台询问是否接受公匙,为了避免这种询问,需要重写ConsoleKnownHostsKeyVerification这个类,目前没有找到好的方法重写这个类。弃用了。


    三:edtFTPj-pro-4.8.1.jar 所支持的方法

    代码如下,最后用的这个类的方法,没有碰到奇怪的问题。

    import com.enterprisedt.net.ftp.pro.ProFTPClientInterface;
    import com.enterprisedt.net.ftp.ssh.SSHFTPClient;
    import com.enterprisedt.util.license.License;


    public class SftpUtil {
        private ProFTPClientInterface client = null;
        public SftpUtil() {
            initLicense();
        }
        
        /**
         * 初始化证书信息
         */
        private void initLicense() {
            License.setLicenseDetails("hello", "371-2454-4908-7510");
        }
        public void connectServerBySFTP(String sftpHost, int sftpPort, String sftpUserName,String sftpPassword) throws Exception {
            SSHFTPClient sshftpClient = new SSHFTPClient();
            sshftpClient.setRemoteHost(sftpHost);
            sshftpClient.setRemotePort(sftpPort);
            sshftpClient.getValidator().setHostValidationEnabled(false);
            sshftpClient.setAuthentication(sftpUserName, sftpPassword);
            sshftpClient.setControlEncoding("UTF-8");
            sshftpClient.connect();
            client = sshftpClient;
            System.out.println("成功连接" + sftpHost);
        }
        public String putBySftp(String localPath, String dstPath, String suffixName, String sftpHost, int sftpPort, String sftpUserName,String sftpPassword) {
            String message ="上传失败!";
            try {
                connectServerBySFTP(sftpHost,  sftpPort,  sftpUserName, sftpPassword);
                String src = localPath +"\\" + suffixName ;
                String os = System.getProperty("os.name");
                  if (os != null && os.toLowerCase().indexOf("windows") > -1) {
                      src = localPath +"\\" + suffixName ;
                  } else {
                      src = localPath +"/" + suffixName ;;                 
                  }   
                String dst = dstPath +"/" + suffixName ;
                boolean  flag=client.exists(dst);
                if(flag){
                    client.delete(dst);
                }
                
                String ssss=client.put(src, dst);
                flag=client.exists(dst);
                if(flag){
                    message=ssss+"上传成功!";
                }else{
                    message="上传失败";
                }
                client.quit();
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            return message;
        }
        /**
         * 关闭FTP客户端连接
         *
         * @return 关闭成功标识
         */
        public void disconnect() {
            try {
                client.quit();
                System.out.println("sftp 连接关闭成功");
            } catch (Exception e) {
                System.out.println("sftp 关闭失败:"+e);
            }
        }

    }




    展开全文
  • java sftp文件上传代码

    2018-03-15 20:28:31
    java sftp文件上传代码java sftp文件上传代码java sftp文件上传代码java sftp文件上传代码
  • java sftp文件上传

    2015-11-19 15:16:57
    工作中遇到客户提出的sftp上传,把核心代码给大家
  • 主要介绍了java使用SFTP上传文件到资源服务器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java通过sftp上传文件

    2019-11-01 11:27:23
    https://www.cnblogs.com/DreamFather/p/11327978.html java通过sftp上传文件 记录哈,大意了
    展开全文
  • Java Sftp上传下载文件

    2016-01-23 19:33:00
    需要使用jar包 jsch-0.1....sftp上传下载实现类 package com.bstek.transit.sftp; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;...

     

    需要使用jar包  jsch-0.1.50.jar 

     

    sftp上传下载实现类

    package com.bstek.transit.sftp;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import com.jcraft.jsch.ChannelSftp;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.Session;
    import com.jcraft.jsch.SftpException;
    
    public class SFtpClient {
        
        private String ftpHost;
        private int ftpPort;
        private String uploadRemotePath; //上传到的服务器目录
        private String downloadRemotePath;//从服务器哪个目录下载
        private String userName;
        private String password;
        private int timeOut = 30000;
    
        private Session session = null;
        private ChannelSftp channel = null;
    
        public SFtpClient() {
            super();
        }
    
        public SFtpClient(String ftpHost, int ftpPort, String uploadRemotePath, String downloadRemotePath, String userName, String password) {
            super();
            this.ftpHost = ftpHost;
            this.ftpPort = ftpPort<=0? 22:ftpPort ;
            this.uploadRemotePath = uploadRemotePath;
            this.downloadRemotePath = downloadRemotePath;
            this.userName = userName;
            this.password = password;
        }
    
        /**
         * 利用JSch包通过SFTP链接
         * @throws JSchException
         */
        public void connect() throws JSchException {
            try {
                JSch jsch = new JSch();
                session = jsch.getSession(userName, ftpHost, ftpPort);
                // 如果服务器连接不上,则抛出异常
                if (session == null) {
                    throw new JSchException("session is null");
                }
                session.setPassword(password);// 设置密码
                session.setConfig("StrictHostKeyChecking", "no");// 设置第一次登陆的时候提示,可选值:(ask
                                                                    // | yes | no)
                //设置登陆超时时间   
                session.connect(timeOut);
                
                channel = (ChannelSftp) session.openChannel("sftp");// 创建sftp通信通道
                channel.connect(1000);
                
            } catch (JSchException e) {
                e.printStackTrace();
                session.disconnect();
                channel.disconnect();
                throw e;
            }
    
        }
        
        /**
         * 上传文件
         * @param localFile 本地上传文件
         * @throws SftpException
         * @throws IOException
         */
        public void uploadFile(File localFile) throws SftpException, IOException {
            
            String fullremoteFileName = this.uploadRemotePath + localFile.getName();
            this.uploadFile(localFile, fullremoteFileName);
        }
    
        public void uploadFile(File localFile, String fullremoteFileName) throws  IOException, SftpException {
            OutputStream outstream = null;
            InputStream instream = null;
    
            try {
                // 判断是否是文件夹
                if (!isPath(fullremoteFileName.substring(0, fullremoteFileName.lastIndexOf("/")))) {
                    createPath(fullremoteFileName.substring(0, fullremoteFileName.lastIndexOf("/")));
                }
    
                outstream = channel.put(fullremoteFileName);
                instream = new FileInputStream(localFile);
    
                byte b[] = new byte[1024];
                int n;
                while ((n = instream.read(b)) != -1) {
                    outstream.write(b, 0, n);
                }
                outstream.flush();
    
            } catch (IOException e) {
                e.printStackTrace();
                throw e;
            } finally {
                try {
                    instream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    outstream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
        }
    /**
     * 下载文件
     * @param remeotFileName
     * @param downloadLocalFile 下载到本地的文件
     * @throws SftpException
     * @throws IOException
     */
        public void downloadFile(String remeotFileName, File downloadLocalFile) throws SftpException, IOException {
            
            String fullremoteDownloadFileName = this.downloadRemotePath + remeotFileName;
            this.downloadFile(downloadLocalFile, fullremoteDownloadFileName);
        }
        
        public void downloadFile(File downloadLocalFile, String fullremoteDownloadFileName) throws  IOException, SftpException {
            OutputStream outstream = null;
            InputStream instream = null;
    
            try {
                
                instream = channel.get(fullremoteDownloadFileName);
                outstream = new FileOutputStream(downloadLocalFile);
    
                byte b[] = new byte[1024];
                int n;
                while ((n = instream.read(b)) != -1) {
                    outstream.write(b, 0, n);
                }
                outstream.flush();
    
            } catch (IOException e) {
                throw e;
            }  catch (SftpException e) {
                throw e;
            } 
            finally {
                try {
                    if(instream!=null){
                        instream.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    if(outstream != null){
                        outstream.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
        }
        
        
        public void uploadFile(String localPath,String localFileName) throws SftpException, IOException {
            this.uploadFile(localPath,localFileName, localFileName);
    
        }
    
        public void uploadFile(String localPath,String localFileName, String remoteFileName) throws SftpException, IOException {
            String fullLocalFileName = localPath + localFileName;
            String fullremoteFileName =this.uploadRemotePath + remoteFileName;
            uploadFile(new File(fullLocalFileName), fullremoteFileName);
        }
    
        public void disconnect() {
            session.disconnect();
            channel.disconnect();
        }
    
        public void createPath(String remotePath) {
            String[] paths = remotePath.split("/");
            String currentPath;
            if (remotePath.startsWith("/")) {
                currentPath = "/";
            } else {
                currentPath = "";
            }
    
            for (String path : paths) {
                if ("".equals(path)) {
                    continue;
                }
                currentPath += path + "/";
                try {
                    channel.mkdir(currentPath);
                } catch (SftpException e) {
    //                e.printStackTrace();
                    // throw e;
                }
            }
        }
    
        public boolean isPath(String remotePath) {
            // 判断是否是文件夹
            try {
                channel.cd(channel.getHome());
                channel.cd(remotePath);
                channel.cd(channel.getHome());
                return true;
            } catch (SftpException e1) {
                // e1.printStackTrace();
                return false;
            }
        }
    
        public static void main(String[] args) throws IOException {
            // String ftpHost = "10.181.77.68";
            // int ftpPort = 22;
            // String localPath = "D:\\temp\\";
            // String remotePath = "usr/WebSphere/tep/";
            // String userName = "wasadm";
            // String password = "wasadm";
            //
            // SFtpClient sftp = new SFtpClient(ftpHost, ftpPort, localPath,
            // remotePath, userName, password);
            // try {
            // sftp.connect();
            // } catch (JSchException e) {
            // e.printStackTrace();
            // }
            // try {
            // sftp.uploadFile("helloworld\\pom.xml");
            // } catch (Exception e) {
            // e.printStackTrace();
            // }
            // sftp.disconnect();
        }
    
    }

     

    sftp上传下载封装类

    package com.bstek.transit.sftp;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    
    import org.apache.log4j.Logger;
    
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.SftpException;
    
    public class SFtpTools {
    
        private final static Logger logger = Logger.getLogger(SFtpTools.class);
    
        private  String ip ;     //IP地址
        private  Integer port;    //端口
        private  String username;//用户名
        private  String password;//密码
        private  String uploadRemotePath;    //上传到服务器的路径
        private  String downloadRemotePath;    //从服务器指定路径下载
        
        public SFtpTools() {
            super();
        }
    /**
     * 
     * @param ip
     * @param port
     * @param username
     * @param password
     * @param uploadRemotePath
     * @param downloadRemotePath
     */
        public SFtpTools(String ip, Integer port, String username,String password, String uploadRemotePath,String downloadRemotePath) {
            super();
            this.ip = ip;
            this.port = port;
            this.username = username;
            this.password = password;
            this.uploadRemotePath = uploadRemotePath;
            this.downloadRemotePath = downloadRemotePath;
        }
    
        public void uploadFiles(File uploadFile) throws JSchException, IOException, SftpException {
    
            logger.info("connect to SFTP . ip:" + this.ip + "; port:" + this.port + ";uppath:" + this.uploadRemotePath + ";downpath:" + this.downloadRemotePath+ ";username:" + this.username + ";password:" + this.password);
            
            SFtpClient sFtpClient = new SFtpClient(ip, port, uploadRemotePath, downloadRemotePath,username, password);
            sFtpClient.connect();
            
            // 上传文件
            logger.info("sftp sending file....local file path = "+uploadFile.getPath());
            sFtpClient.uploadFile(uploadFile);
        
            // 单台链接关闭
            sFtpClient.disconnect();
            
        }
    
        /**
         * 下载文件到指定的路径
         * @param downloadFile
         * @param remeotFileName 要从服务器获取的文件名称
         * @throws JSchException
         * @throws IOException
         * @throws SftpException
         */
        public void downloadFiles(String remeotFileName, File downloadFile) throws JSchException, IOException, SftpException {
    
            logger.info("connect to SFTP . ip:" + this.ip + "; port:" + this.port + ";uppath:" + this.uploadRemotePath + ";downpath:" + this.downloadRemotePath+ ";username:" + this.username + ";password:" + this.password);
            
            SFtpClient sFtpClient = new SFtpClient(ip, port, uploadRemotePath, downloadRemotePath,username, password);
            sFtpClient.connect();
            
            // 下载文件
            logger.info("sftp receiving file....remote file name = "+remeotFileName);
            sFtpClient.downloadFile(remeotFileName,downloadFile);
        
            // 单台链接关闭
            sFtpClient.disconnect();
            
        }
        
        public static void main(String[] args) throws IOException {
    //        SFtpUploadBat sfb = new SFtpUploadBat("10.181.77.68&10.181.68.236", "22&22", "D:\\temp\\", "tepppp/&teppp/",
    //                "wasadm&wasadm", "wasadm&wasadm");
    //        try {
    //            sfb.uploadFiles("helloworld\\");
    //        } catch (SftpException e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        } catch (JSchException e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        }
        }
    
    }

     

    sftp上传下载调用

    /**
         * 上传扣费文件到行方扣费系统
         * @param uploadRemotePath 服务器文件路径
         * @throws Exception
         */
        public void uploadFeeFile2Core(String currDate)  throws Exception {
    
            String fileName = FeeSupport.FEE_FILE_UPLOAD_PREFIX+currDate+FeeSupport.FEE_FILE_SUFFIX;
            //查询是否需要上传文件
            String hql = "from SysFileHandle where fileName = '" + fileName+"' and fileType = '"+FeeSupport.FEE_FILE_TYPE_UPLOAD+"' and handleState != '" + FeeSupport.FEE_FILE_STATE_SUCC + "'";
            SysFileHandle fileHandle = this.fileHandleDao.getFileHandleByUnique(hql);
            
            if(fileHandle!=null){
                // 上传
                try {
                    SFtpTools sfb = new SFtpTools(sftpProperty.getIp(), sftpProperty.getPort(),sftpProperty.getUsername(),sftpProperty.getPassword(),sftpProperty.getUploadRemotePath(),sftpProperty.getDownloadRemotePath());
                    sfb.uploadFiles(new File(sftpProperty.getUploadLocalPath(),fileHandle.getFileName()));
                
                } catch (Exception e) {
                    fileHandle.setHandleState(FeeSupport.FEE_FILE_STATE_FAIL);
                    // 更新记录状态
                    this.fileHandleDao.updateFileHandle(fileHandle);
                    throw e;
                }
                
                fileHandle.setHandleState(FeeSupport.FEE_FILE_STATE_SUCC);
                // 更新记录状态
                this.fileHandleDao.updateFileHandle(fileHandle);
            }
        
        }
        
    public void downloadFeeFile4Core(String currDate) throws Exception {
            
            String fileName = FeeSupport.FEE_FILE_DOWNLOAD_PREFIX+currDate+FeeSupport.FEE_FILE_SUFFIX;
            //查询是否需要下载文件
            String hql = "from SysFileHandle where fileName = '" + fileName+"' and fileType = '"+FeeSupport.FEE_FILE_TYPE_DOWNLOAD + "'";
            SysFileHandle fileHandle = this.fileHandleDao.getFileHandleByUnique(hql);
            
            if(fileHandle != null && currDate.equals(fileHandle.getCreateDate())){
                return ;
            }
            
            if(fileHandle == null){
                fileHandle = new SysFileHandle();
                fileHandle.setFileName(fileName);
                fileHandle.setFileType(FeeSupport.FEE_FILE_TYPE_DOWNLOAD );
            }
            this.downloadFeeFile4Core(fileHandle,currDate,fileName);        
        }
        
        private void downloadFeeFile4Core( SysFileHandle fileHandle,String currDate,String fileName) throws Exception {
            
            //需要下载
            try {
                SFtpTools sfb = new SFtpTools(sftpProperty.getIp(), sftpProperty.getPort(),sftpProperty.getUsername(),sftpProperty.getPassword(),sftpProperty.getUploadRemotePath(),sftpProperty.getDownloadRemotePath());
                sfb.downloadFiles(fileName,new File(sftpProperty.getDownloadLocalPath(),fileName));
            
            } catch (Exception e) {
                
                // 更新记录状态
                this.fileHandleDao.updateFileHandle(fileHandle);
                throw e;
            }
            
            fileHandle.setHandleState(FeeSupport.FEE_FILE_STATE_NO);
            fileHandle.setCreateDate(currDate);
            // 更新记录状态
            this.fileHandleDao.updateFileHandle(fileHandle);
        }
        

     

    转载于:https://www.cnblogs.com/yangw/p/5153854.html

    展开全文
  • 主要介绍了Java使用SFTP上传文件到服务器的简单使用,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • Java SFTP文件上传下载

    千次阅读 2017-03-30 15:37:17
    Java实现SFTP上传下载时可以变更文件名,记录一下 在安卓文章里看到的,用的包是:jsch-0.1.54.jar,log请换成log4jpublic class

    Java实现SFTP,上传下载时可以变更文件名,很实用
    在安卓文章里看到的,用的包是:jsch-0.1.54.jar,log请换成log4j

    public class SFTPUtils {  
    
        private String TAG="SFTPUtils";  
        private String host;  
        private String username;  
        private String password;  
        private int port = 22;  
        private ChannelSftp sftp = null;  
        private Session sshSession = null;  
    
        public SFTPUtils (String host, String username, String password) {  
            this.host = host;  
            this.username = username;  
            this.password = password;  
        }  
    
        /** 
         * connect server via sftp 
         */  
        public ChannelSftp connect() {  
            JSch jsch = new JSch();  
            try {  
                sshSession = jsch.getSession(username, host, port);  
                sshSession.setPassword(password);  
                Properties sshConfig = new Properties();  
                sshConfig.put("StrictHostKeyChecking", "no");  
                sshSession.setConfig(sshConfig);  
                sshSession.connect();  
                Channel channel = sshSession.openChannel("sftp");  
                if (channel != null) {  
                    channel.connect();  
                } else {  
                    Log.e(TAG, "channel connecting failed.");  
                }  
                sftp = (ChannelSftp) channel;  
            } catch (JSchException e) {  
                e.printStackTrace();  
            }  
            return sftp;  
        }  
    
    
    /** 
     * 断开服务器 
     */  
        public void disconnect() {  
            if (this.sftp != null) {  
                if (this.sftp.isConnected()) {  
                    this.sftp.disconnect();  
                    Log.d(TAG,"sftp is closed already");  
                }  
            }  
            if (this.sshSession != null) {  
                if (this.sshSession.isConnected()) {  
                    this.sshSession.disconnect();  
                    Log.d(TAG,"sshSession is closed already");  
                }  
            }  
        }  
    
        /** 
         * 单个文件上传 
         * @param remotePath 
         * @param remoteFileName 
         * @param localPath 
         * @param localFileName 
         * @return 
         */  
        public boolean uploadFile(String remotePath, String remoteFileName,  
                String localPath, String localFileName) {  
            FileInputStream in = null;  
            try {  
                createDir(remotePath);  
                System.out.println(remotePath);  
                File file = new File(localPath + localFileName);  
                in = new FileInputStream(file);  
                System.out.println(in);  
                sftp.put(in, remoteFileName);  
                System.out.println(sftp);  
                return true;  
            } catch (FileNotFoundException e) {  
                e.printStackTrace();  
            } catch (SftpException e) {  
                e.printStackTrace();  
            } finally {  
                if (in != null) {  
                    try {  
                        in.close();  
                    } catch (IOException e) {  
                        e.printStackTrace();  
                    }  
                }  
            }  
            return false;  
        }  
    
        /** 
         * 批量上传 
         * @param remotePath 
         * @param localPath 
         * @param del 
         * @return 
         */  
        public boolean bacthUploadFile(String remotePath, String localPath,  
                boolean del) {  
            try {  
                File file = new File(localPath);  
                File[] files = file.listFiles();  
                for (int i = 0; i < files.length; i++) {  
                    if (files[i].isFile()  
                            && files[i].getName().indexOf("bak") == -1) {  
                        synchronized(remotePath){  
                            if (this.uploadFile(remotePath, files[i].getName(),  
                                localPath, files[i].getName())  
                                && del) {  
                            deleteFile(localPath + files[i].getName());  
                            }  
                        }  
                    }  
                }  
                return true;  
            } catch (Exception e) {  
                e.printStackTrace();  
            } finally {  
                this.disconnect();  
            }  
            return false;  
    
        }  
    
        /** 
         * 批量下载文件 
         *  
         * @param remotPath 
         *            远程下载目录(以路径符号结束) 
         * @param localPath 
         *            本地保存目录(以路径符号结束) 
         * @param fileFormat 
         *            下载文件格式(以特定字符开头,为空不做检验) 
         * @param del 
         *            下载后是否删除sftp文件 
         * @return 
         */  
        @SuppressWarnings("rawtypes")  
        public boolean batchDownLoadFile(String remotPath, String localPath,  
                String fileFormat, boolean del) {  
            try {  
                connect();  
                Vector v = listFiles(remotPath);  
                if (v.size() > 0) {  
    
                    Iterator it = v.iterator();  
                    while (it.hasNext()) {  
                        LsEntry entry = (LsEntry) it.next();  
                        String filename = entry.getFilename();  
                        SftpATTRS attrs = entry.getAttrs();  
                        if (!attrs.isDir()) {  
                            if (fileFormat != null && !"".equals(fileFormat.trim())) {  
                                if (filename.startsWith(fileFormat)) {  
                                    if (this.downloadFile(remotPath, filename,  
                                            localPath, filename)  
                                            && del) {  
                                        deleteSFTP(remotPath, filename);  
                                    }  
                                }  
                            } else {  
                                if (this.downloadFile(remotPath, filename,  
                                        localPath, filename)  
                                        && del) {  
                                    deleteSFTP(remotPath, filename);  
                                }  
                            }  
                        }  
                    }  
                }  
            } catch (SftpException e) {  
                e.printStackTrace();  
            } finally {  
                this.disconnect();  
            }  
            return false;  
        }  
    
        /** 
         * 单个文件下载 
         * @param remotePath 
         * @param remoteFileName 
         * @param localPath 
         * @param localFileName 
         * @return 
         */  
        public boolean downloadFile(String remotePath, String remoteFileName,  
                String localPath, String localFileName) {  
            try {  
                sftp.cd(remotePath);  
                File file = new File(localPath + localFileName);  
                mkdirs(localPath + localFileName);  
                sftp.get(remoteFileName, new FileOutputStream(file));  
                return true;  
            } catch (FileNotFoundException e) {  
                e.printStackTrace();  
            } catch (SftpException e) {  
                e.printStackTrace();  
            }  
    
            return false;  
        }  
    
        /** 
         * 删除文件 
         * @param filePath 
         * @return 
         */  
        public boolean deleteFile(String filePath) {  
            File file = new File(filePath);  
                if (!file.exists()) {  
                    return false;  
                }  
                if (!file.isFile()) {  
                    return false;  
                }  
                return file.delete();  
            }  
    
        public boolean createDir(String createpath) {  
            try {  
                if (isDirExist(createpath)) {  
                    this.sftp.cd(createpath);  
                    Log.d(TAG,createpath);  
                    return true;  
                }  
                String pathArry[] = createpath.split("/");  
                StringBuffer filePath = new StringBuffer("/");  
                for (String path : pathArry) {  
                    if (path.equals("")) {  
                        continue;  
                    }  
                    filePath.append(path + "/");  
                        if (isDirExist(createpath)) {  
                            sftp.cd(createpath);  
                        } else {  
                            sftp.mkdir(createpath);  
                            sftp.cd(createpath);  
                        }  
                    }  
                    this.sftp.cd(createpath);  
                      return true;  
                } catch (SftpException e) {  
                    e.printStackTrace();  
                }  
                return false;  
            }  
    
        /** 
         * 判断目录是否存在 
         * @param directory 
         * @return 
         */  
        @SuppressLint("DefaultLocale")   
        public boolean isDirExist(String directory) {  
            boolean isDirExistFlag = false;  
            try {  
                SftpATTRS sftpATTRS = sftp.lstat(directory);  
                isDirExistFlag = true;  
                return sftpATTRS.isDir();  
            } catch (Exception e) {  
                if (e.getMessage().toLowerCase().equals("no such file")) {  
                    isDirExistFlag = false;  
                }  
            }  
            return isDirExistFlag;  
            }  
    
        public void deleteSFTP(String directory, String deleteFile) {  
            try {  
                sftp.cd(directory);  
                sftp.rm(deleteFile);  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    
        /** 
         * 创建目录 
         * @param path 
         */  
        public void mkdirs(String path) {  
            File f = new File(path);  
            String fs = f.getParent();  
            f = new File(fs);  
            if (!f.exists()) {  
                f.mkdirs();  
            }  
        }  
    
        /** 
         * 列出目录文件 
         * @param directory 
         * @return 
         * @throws SftpException 
         */  
    
        @SuppressWarnings("rawtypes")  
        public Vector listFiles(String directory) throws SftpException {  
            return sftp.ls(directory);  
        }  
    
    }
    展开全文
  • 【基础】java通过sftp上传文件

    万次阅读 热门讨论 2017-05-22 23:32:34
    Linux操作系统我们经常使用ssh中的ftp,sftp连接服务器,做相应操作。 如何通过java代码的形式采用sftp...-- sftp上传依赖包 --&gt; &lt;dependency&gt; &lt;groupId&gt;com.jcraft&lt;...
  • JAVA sftp单个文件上传

    2020-05-19 16:55:57
    import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; ... ... import java.io.File;...import java.io.FileInputStream;...import java.io.InputStream;...import java.time.LocalDateTime;...import java..
  • Java通过sftp上传文件

    2018-01-24 11:07:00
    Linux操作系统我们经常使用ssh中的ftp,sftp连接服务器,做相应操作。 如何通过java代码的形式采用sftp连接到...-- sftp上传依赖包 --> <dependency> <groupId>com.jcraft</groupId> ...
  • java sftp文件上传和下载

    千次阅读 2018-03-25 14:59:07
    package ...import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Iterator;import java.util.Properties;import java....
  • java实现sftp上传下载文件,使用jcraft实现,含所需jar包。
  • 最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询/*** 将文件上传到服务器** @param filePath* 文件路径* @param channelSftp* channelSftp对象* @return*/public static boolean uploadFile...
  • java sftp工具类 引用: jsch-0.1.54.jar <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </...
  • java使用sftp上传文件

    2020-11-17 20:20:57
    keys chmod 700 /root/.ssh 编辑 /etc/ssh/sshd_config 文件(先备份) 找到并修改以下属性 RSAAuthentication yes PubkeyAuthentication yes PermitRootLogin yes 重启ssh(sshd_config文件编辑错误的话会失败) ...
  • Java SFTP 传输文件实例

    2019-07-29 14:52:34
    这篇文章将介绍如何用 Java 在远程服务器上通过 SFTP 上传和下载文件。 接下来将使用三种不同的开发库实现,分别是 JSch、SSHJ 和 Apache Commons VFS。 2. 使用 JSch 首先,让我们看看如何使用 JSch 在...
  • java实现上传文件,删除文件操作,通过sftp实现,上传文件到服务器上
  • 转载:http://blog.csdn.net/yhl_jxy/article/details/72633034Linux操作系统我们经常使用ssh中的ftp,sftp连接服务器,做相应操作。如何通过java代码的形式采用sftp...-- sftp上传依赖包 --&gt; &lt;dep...
  • JAVA-SFTP上传文件

    2017-02-23 14:56:32
    话不多说,先上代码。使用guice注入。其他使用自行修改 ` import com.google.inject.Singleton; ... import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.io.File;...import java.io.FileInputS
  • 程序具体功能为借助sqluldr,自动生成批处理bat文件java再去执行bat,导出CSV,支持批量导出,需在XML配置,批量上传也已经实现,该程序已经封装好了,下载后直接点击*.jar即可执行,会出现swing窗口,数据库切记要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,681
精华内容 2,672
关键字:

javasftp上传文件

java 订阅