博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SFTP的使用
阅读量:5039 次
发布时间:2019-06-12

本文共 5325 字,大约阅读时间需要 17 分钟。

1。登录

1 JSch jsch = new JSch(); 2             jsch.getSession(username, host, port); 3             Session sshSession = jsch.getSession(username, host, port);  4             sshSession.setPassword(password); 5             Properties sshConfig = new Properties(); 6             sshConfig.put("StrictHostKeyChecking", "no"); 7             sshSession.setConfig(sshConfig); 8             sshSession.connect();  9             Channel channel = sshSession.openChannel("sftp");10             channel.connect();11             sftp = (ChannelSftp) channel;

 

2。上传文件和修改文件名称

1 try {   2             File file = new File(ExcSystemConfig.getProperties("ExchageUpload","oa")); 3             if (!file.exists()) { 4                 file.mkdirs(); 5             }  6             File files[] = file.listFiles(); 7             String filePath = ""; 8             String path = exchangeContants.SFTPPATH;  9             if (files.length!=0) {10                 for (int i = 0; i < files.length; i++) { 11                     if (files[i].isFile()) {12                         boolean result = false;13                         String fileNmae = files[i].getName();14                         String nameStr = files[i].getName()+".sftp";15                         //得到文件的存放路径。16                         String fileNamePath = files[i].getPath();17                         Long size = files[i].length();18                         filePath = fileNmae.substring(13, 15);19                         if (filePath.equals("ST")) { 20                             sftp.cd(path+"ST");21                             //得到当前 sftp的路径 22                             Vector vector = sftp.ls(path+"ST");23                             Object obj[] = vector.toArray();24                             for (int j = 0; j < obj.length; j++) {25                                 if (obj[j]!=null) {26                                     if (!obj[j].toString().contains(fileNmae)) {27                                         result = true;28                                     }29                                 } 30                             }31                             if (obj.length==0) {32                                 result = true;33                             }34                         }  35                         if (filePath.equals("SD")) {36                             sftp.cd(path+"SD");37                             //得到当前 sftp的路径 38                             String sftpPath = sftp.pwd();39                              40                             // 设置 上传文件的方式 ,当前方式为 上传的文件为 文件夹时,会在服务器上和当前文件名一样的一个文件夹41                             // 如果 文件已经存在 将会覆盖原先的文件 。42                             Vector vector = sftp.ls(path+"SD");43                             Object obj[] = vector.toArray();44                             for (int j = 0; j < obj.length; j++) {45                                 if (obj[j]!=null) {46                                     if (!obj[j].toString().contains(fileNmae)) {47                                         result = true;48                                     }49                                 } 50                             }51                             if (obj.length==0) {52                                 result = true;53                             }54                         }55                         if (filePath.equals("MA")) {56                             sftp.cd(path+"MA");57                             //得到当前 sftp的路径 58                             String sftpPath = sftp.pwd(); 59                             Vector vector = sftp.ls(path+"MA");60                             Object obj[] = vector.toArray();61                             for (int j = 0; j < obj.length; j++) {62                                 if (obj[j]!=null) {63                                     if (!obj[j].toString().contains(fileNmae)) {64                                         result = true;65                                     }66                                 } 67                             }68                             //判断 SFTP服务器上 是否存在文件 不存在 可以上传69                             if (obj.length==0) {70                                 result = true;71                             }72                         } 73                         if (result) {74                             int resultCount = FtpFileInfoBean.getFtpFileNameByName(bUserMdoel, fileNmae, "0");75                             if (resultCount==0) {76 //                                设置 上传文件的方式 ,当前方式为 上传的文件为 文件夹时,会在服务器上和当前文件名一样的一个文件夹77                                 // 如果 文件已经存在 将会覆盖原先的文件 。 78                                 sftp.put(fileNamePath, nameStr,sftp.OVERWRITE);79                                 sftp.rename(nameStr,fileNmae);80                                 this.addFtpFile(bUserMdoel,fileNmae,null,size,"0");81                                 log(bUserMdoel,"文件上传",LogTypeContants.LOG_TYPE_ADD,"文件上传成功","文件上传成功:"+file.getName(), "文件上传成功");82                             }else {83                                 log(bUserMdoel,"文件上传",LogTypeContants.LOG_TYPE_ADD,"此文件已经上传",file.getName()+"此文件已经上传", "此文件已经上传");84                             } 85                         } 86                     }87                 }88             }89         }

 

转载于:https://www.cnblogs.com/kele-ting/archive/2012/12/27/2835228.html

你可能感兴趣的文章
Asp.net MVC 中Ajax的使用 [分享]
查看>>
重新配置dbconsole的步骤
查看>>
Library Publication 时遇到 "more than one library with package name" 错误的解决方法
查看>>
MySQL字段操作与数据处理
查看>>
SQL左右连接中的on and和on where的区别
查看>>
从Oracle9i RMAN全库备份迁移到 Oracle10g
查看>>
ps基础入门快捷方法总结
查看>>
摸索出来的文字居中 定位后怎么都不居中,,
查看>>
数据库索引
查看>>
VS 自带Git使用教程
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>
java aes CBC的填充方式发现
查看>>
使用ionic cordova build android --release --prod命令打包报有如下错误及解决方法
查看>>