`
majg
  • 浏览: 6703 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

利用ftp4j实现ftps加密上传

阅读更多

//--------------------这是是main方法---------

import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferException;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;
import it.sauronsoftware.ftp4j.FTPListParseException;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.Properties;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;

 

public class ss {

 /**
  * @param args  

  * @throws FTPException
  * @throws FTPIllegalReplyException
  * @throws IOException
  * @throws IllegalStateException
  * @throws FTPListParseException
  */
 public static void main(String[] args) throws IllegalStateException, IOException, FTPIllegalReplyException, FTPException, FTPListParseException {
  
    X509TrustManager[] trustAll = new X509TrustManager[] { new X509TrustManager() {
     public java.security.cert.X509Certificate[] getAcceptedIssuers() {
      return null;
     }

     public void checkClientTrusted(
       java.security.cert.X509Certificate[] certs, String authType) {
     }

     public void checkServerTrusted(
       java.security.cert.X509Certificate[] certs, String authType) {
     }
    }
    };
  
  SSLContext sslContext = null;
  FTPClient client = new FTPClient();
  try {
   sslContext = SSLContext.getInstance("SSL");
   sslContext.init(null, trustAll,  new java.security.SecureRandom());
   SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
   client.setSSLSocketFactory(sslSocketFactory);
   client.setSecurity(FTPClient.SECURITY_FTPS);
  } catch (KeyManagementException e) {
   e.printStackTrace();
  } catch (NoSuchAlgorithmException e) {
   e.printStackTrace();
  }
   
  try {
   File pf = new File("ftps.properties");
         InputStream pi = new FileInputStream(pf);
   Properties p = new Properties();
         p.load(pi);
   //服务器IP地址
   String ip=p.getProperty("serverIp");
   //服务器端口
   String port=p.getProperty("serverPort");
   //服务器用户名
   String userName=p.getProperty("userName");
   //服务器密码
   String passWord=p.getProperty("passWord");
   //本地文件
   String localFile=p.getProperty("localFile");
   System.out.println("----开始连接接服务器------");
   System.out.println("IP> "+ip+" 端口> "+port+" 用户> "+userName);
   
   client.connect(ip, Integer.valueOf(port));
   client.login(userName, passWord);
   
   
   String [] str=localFile.split(",");
   System.out.println(" 总共 "+str.length+"文件要上传");
   for(int i=0;i<str.length;i++){
    
    System.out.println("  ");
    System.out.println("  第"+i+"文件");
    System.out.println("---开始上传 "+str[i]+" ---");
    client.upload(new java.io.File(str[i]));
    System.out.println("---上传结束---");
    System.out.println("  ");
   }
  } catch (FTPDataTransferException e) {
   e.printStackTrace();
  } catch (Exception e) {
   e.printStackTrace();
  }

 }
 
}
   


//-------------------------配置文件(ftps.properties)-----------------------

# ftps 上传配置文件

#服务器IP地址
serverIp=192.168.1.17
#服务器端口
serverPort=991
#服务器用户名
userName=mjg
#服务器密码
passWord=123

#本地文件 多个文件用逗号分开
localFile=D\:output.log,D\:output2.log

 

分享到:
评论
1 楼 zhongbiqing 2010-11-11  
请问下,兄台你的类(X509TrustManager)不用写代码了吗?
上面的代码,可以直接用了吗?   谢谢

我最近也在写客户端的FTPS!

相关推荐

    javaftp4j实现ftps加密上传

    本文将详细讲解如何使用Java的ftp4j库实现FTPS加密上传,以及相关的工具FileZillaServer和FileZillaFTP。 首先,FTPS(File Transfer Protocol over Secure Socket Layer)是FTP协议的安全版本,它通过SSL/TLS加密...

    ftp4j 支持加密FTPS传输

    支持FTP加密上传,1.4到1.7版本的包 Security Basic FTP authentication. FTPS (FTP over implicit TLS/SSL). FTPES (FTP over explicit TLS/SSL).

    Qt实现ftps服务器

    在本文中,我们将深入探讨如何使用Qt框架来实现一个FTPS(FTP over SSL/TLS)服务器,以此确保数据传输的安全性和可靠性。FTPS是FTP协议的扩展,它通过添加SSL/TLS层为文件传输提供了加密保护,防止了数据在传输过程...

    ftp4j 上传 下载

    - FTP4J支持断点续传,可以通过`resumeTransfer()`和`suspendTransfer()`方法来实现。这在大文件传输中断后继续传输时非常有用。 6. 错误处理和连接管理: - FTP4J的`FtpException`类表示FTP操作过程中可能遇到的...

    QTCreator 通过libcurl实现ftp和fts文件上传

    通过以上步骤,你可以在QTCreator中利用libcurl实现FTP和FTPS的文件上传。这不仅简化了网络传输的实现,也提高了代码的可移植性。在实际应用中,可能还需要考虑其他因素,如重试机制、进度条显示、多线程上传等,但...

    ftp4j 1.3源码

    《ftp4j 1.3源码解析与FTPS客户端实现》 ftp4j是一款流行的Java库,专门用于实现FTP(文件传输协议)和FTPS(FTP over SSL/TLS)客户端功能。它由意大利开发者Sandro Giachetti开发,旨在为Java应用程序提供简单而...

    FTP,SFTP,FTPS总结

    FTP、SFTP、FTPS 总结 FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的协议。它是基于 TCP/IP 协议的应用层协议,主要用于在客户端和服务器之间传输文件。 FTP 的主要特点是: 1. 基于...

    ftp4j-1.7.2.jar

    FTP4J是一个用Java编写的开源库,专为在Java应用程序中实现FTP(文件传输协议)功能而设计。这个库提供了全面的FTP客户端功能,包括连接到FTP服务器、上传和下载文件、创建和删除目录、处理被动模式以及支持SSL/TLS...

    编写FTP和FTPS客户端参考文档

    FTP客户端是用户与FTP服务器交互的工具,而FTPS(FTP over SSL/TLS)则为FTP提供了安全加密的通道,确保数据传输的隐私性。 FileZilla服务器是一款开源的FTP服务器软件,具有易于使用、稳定可靠和功能丰富的特点,...

    Ftps,SSL的基本用法

    在本文中,我们将详细探讨FTPS和SSL的基本用法,以及如何使用Java的ftp4j库进行FTP操作。 FTPS分为两种模式: Explicit(明示式)和Implicit(隐式)模式。在 Explicit 模式下,客户端先建立一个未加密的FTP连接,...

    使用前端插件上传文件到ftp服务器

    - **加密传输**:尽管FTP支持FTPS(FTP over SSL/TLS)或SFTP(SSH File Transfer Protocol)以加密传输,但默认FTP是不安全的。在生产环境中,务必使用加密的协议来保护用户数据。 - **防止跨站请求伪造(CSRF)**...

    Labview FTP上传文件

    Labview FTP上传文件是利用Labview(Laboratory Virtual Instrument Engineering Workbench)这一强大的图形化编程环境,通过FTP(File Transfer Protocol)协议实现文件的远程传输。FTP是一种标准网络协议,用于在...

    使用FileZilla_Server搭建ftps和ftp服务器

    FileZilla Server是一款开源、免费且功能强大的FTP服务器软件,支持FTPS(FTP over TLS/SSL)和FTP两种协议,可以提供安全的数据传输。本文将详细介绍如何使用FileZilla Server搭建FTPS和FTP服务器。 首先,你需要...

    FTP上传 实现网站预览

    此外,还可能需要指定端口号(默认为21),以及选择连接类型,如FTP(不加密)、FTPS(使用SSL/TLS加密)或SFTP(使用SSH加密)。 3. 上传文件: 在FTP客户端中,用户可以浏览本地文件系统,选择要上传的文件或...

    PB9 FTP上传与下载实例

    PB9 FTP上传与下载实例是基于PowerBuilder 9(PB9)开发的一种应用程序功能,它利用seinweb.dll组件来实现在FTP(File Transfer Protocol)服务器上进行文件的上传和下载操作。FTP是一种广泛用于互联网上的协议,...

    PowerBuilder9.0语言实现FTP上传与下载

    此外,对于涉及安全限制的服务器,可能需要使用SSL/TLS加密的FTPS(FTP over TLS/SSL)协议。这需要在建立FTP连接时启用安全模式,并提供相关的证书信息。如果遇到此类情况,我们需要对FTP组件进行相应的配置。 总...

    j-ftp实现ftp

    FTP(File Transfer Protocol)是一种...总的来说,j-ftp是一个实用的Java FTP客户端,它利用了Java的AWT库创建图形界面,并实现了基本的FTP功能。对于初学者和经验丰富的开发者,它都是一个有价值的工具和学习资源。

    CurlFtps:基于 curl 的 ios ftp 和 ftps 上传服务

    CurlFtps是一个基于开源库curl的iOS应用,专门用于实现FTP(文件传输协议)和FTPS(安全文件传输协议)的上传服务。这个库为iOS开发者提供了一种方便的方式来处理文件上传,尤其是在需要安全传输敏感数据时,FTPS的...

    Java实现FTP批量大文件上传下载

    这个示例代码使用 J-ftp 库来实现 FTP 客户端的上传功能。 五、结论 本文介绍了如何使用 Java 实现 FTP 服务器上的大批量文件的上传和下载,处理大文件的上传和下载。通过 Java 现有的可用的库来编写 FTP 客户端...

Global site tag (gtag.js) - Google Analytics