博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ftp客户端需要TSL功能的文件上传
阅读量:5304 次
发布时间:2019-06-14

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

Ftp客户端需要TSL功能

1、由于最近做了一个项目,需要把打包的文件传输到对方的FTP服务器上,但是用普通的java连接ftp客户端总是连接不上去,对方却说ftp客户端需要开通TSL功能。

直接上代码了!

1 package cn.tendency.LaibinGaFtp;  2   3 import it.sauronsoftware.ftp4j.FTPClient;  4   5 import java.io.File;  6 import java.security.SecureRandom;  7 import java.security.cert.CertificateException;  8 import java.security.cert.X509Certificate;  9  10 import javax.net.ssl.SSLContext; 11 import javax.net.ssl.SSLSocketFactory; 12 import javax.net.ssl.TrustManager; 13 import javax.net.ssl.X509TrustManager; 14  15 import org.apache.log4j.Logger; 16  17 import cn.tendency.utils.FilesUtil; 18  19 public class Test2 { 20     private static final Logger log = Logger.getLogger(Test2.class); 21  22     public static void main(String[] args) { 23     putFile("111.59.53.333", 21, "wewe", "ddfaf", "E:\\houseTestData\\zip", "E:\\houseTestData\\back"); 24     } 25  26     public static void putFile(String host, int port, String username, 27             String password, String zipPath, String backPath) { 28         try { 29             TrustManager[] trustManager = new TrustManager[] { new X509TrustManager() { 30  31                 public void checkClientTrusted(X509Certificate[] chain, 32                         String authType) throws CertificateException { 33                     // TODO Auto-generated method stub 34  35                 } 36  37                 public void checkServerTrusted(X509Certificate[] chain, 38                         String authType) throws CertificateException { 39                     // TODO Auto-generated method stub 40  41                 } 42  43                 public X509Certificate[] getAcceptedIssuers() { 44                     // TODO Auto-generated method stub 45                     return null; 46                 } 47  48             } }; 49             SSLContext sslContext = null; 50             sslContext = SSLContext.getInstance("SSL"); 51             sslContext.init(null, trustManager, new SecureRandom()); 52             SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); 53             FTPClient client = new FTPClient(); 54             client.setSSLSocketFactory(sslSocketFactory); 55             client.setSecurity(FTPClient.SECURITY_FTPES); 56             client.connect(host, 21); 57             log.info("连接111.59.53.18 ftp成功!"+client.toString()); 58             client.login(username, password); 59             log.info("登录ftp成功!当前目录为:"+client.currentDirectory()); 60             File file = new File(zipPath); 61             if (file.isDirectory()) { 62                 log.info("我们读的是目录"); 63                 // 列出所有文件名 64                 String[] files = file.list(); 65                 // 文件数 66                 int fileNum = files.length; 67                 log.info("文件夹下有" + fileNum + "个文件"); 68                 if (fileNum > 4) { 69                     fileNum = 4; 70                 } 71                 for (int i = 0; i < fileNum; i++) { 72                     File file2 = new File(file.getPath() + "\\" + files[i]); 73                     try { 74 //                        FileInputStream input = new FileInputStream(file2); 75                         client.upload(file2); 76 //                        boolean storeFile = client.storeFile( 77 //                                file2.getName(), input); 78 //                        input.close(); 79                         // 上传成功后备份压缩文件,不成功可以下次再传 80 //                        if (storeFile) { 81                             // 备份 82                             boolean flag1 = FilesUtil.copyFile2(file2, 83                                     backPath); 84  85                             if (flag1) {
// 备份成功后删除文件; 86 log.info(file2+" 备份成功!"); 87 88 file2.delete(); 89 90 } else { 91 log.error(file2+" 备份成功!"); 92 } 93 // } else { 94 // logger.error(file2.getName()+" 上传文件失败!"); 95 // } 96 } catch (Exception e) { 97 // TODO Auto-generated catch block 98 e.printStackTrace(); 99 }100 101 }102 // Logout103 client.logout();104 105 log.info("退出ftp!");106 // Disconnect107 // ftpClient.disconnect();108 }109 } catch (Exception e) {110 e.printStackTrace();111 }112 }113 }

 

转载于:https://www.cnblogs.com/kwzblog/p/7484365.html

你可能感兴趣的文章
Chapter 3 Phenomenon——12
查看>>
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
C++ 删除字符串的两种实现方式
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Java抽象类和接口的比较
查看>>
开发进度一
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>