zoukankan      html  css  js  c++  java
  • Ftp客户端需要TSL功能的文件上传

    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                 // Logout
    103                 client.logout();
    104                 
    105                 log.info("退出ftp!");
    106                 // Disconnect
    107 //                ftpClient.disconnect();
    108             }
    109         } catch (Exception e) {
    110             e.printStackTrace();
    111         }
    112     }
    113 }
  • 相关阅读:
    Windows 7目录
    用wubi安装的Ubuntu在重装Windows 7系统后,如何恢复(转)
    用java查询HBase中某表的一批数据
    hbase数据模型以及编码压缩(转)
    应用Flume+HBase采集和存储日志数据
    HBase性能调优(转)
    【剑指Offer学习】【面试题50:树中两个结点的最低公共祖先】
    [Phonegap+Sencha Touch] 移动开发24 打包wp8.1的App,执行时输入框聚焦弹出软键盘之后,界面上移而不恢复原位的解决的方法
    写在课程设计之后
    String内存溢出异常(错误)可能的原因及解决方式
  • 原文地址:https://www.cnblogs.com/kwzblog/p/7484365.html
Copyright © 2011-2022 走看看