支持代理的FTP操作

来源:互联网 发布:英语同声传译软件 编辑:程序博客网 时间:2024/06/05 19:11

ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能。可以将ftp4j嵌到你的Java应用中,来传输文件(包括上传和下载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。


import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.connectors.FTPProxyConnector;
import it.sauronsoftware.ftp4j.connectors.HTTPTunnelConnector;
import it.sauronsoftware.ftp4j.connectors.SOCKS4Connector;
import it.sauronsoftware.ftp4j.connectors.SOCKS5Connector;
import it.sauronsoftware.ftp4j.connectors.SSLConnector;

JAR包下载地址:http://www.sauronsoftware.it/projects/ftp4j/download.php

示例代码:

//上传文件到FTP上去
    FTPClient ftp =new FTPClient();
    try
    {  
        //如果配置了代理服务器,那么使用代理的一些配置
        if(ftp_proxy_ip.trim().length()>0)
        {      
            //FTP代理连接器
            if(ftp_proxy_type.equals("FTPProxyConnector"))
            {
                FTPProxyConnector type=newFTPProxyConnector(ftp_proxy_ip.trim(),ftp_proxy_port);
                ftp.setConnector(type);
            }
            else//SOCKET4代理连接器
            if(ftp_proxy_type.equals("SOCKS4Connector"))
            {
                SOCKS4Connector type=newSOCKS4Connector(ftp_proxy_ip.trim(),ftp_proxy_port);
                ftp.setConnector(type);
            }
            else//SOCKET5代理连接器
            if(ftp_proxy_type.equals("SOCKS5Connector"))
            {
                SOCKS5Connector type=newSOCKS5Connector(ftp_proxy_ip.trim(),ftp_proxy_port);
                ftp.setConnector(type);
            }
            else//http代理连接器
            if(ftp_proxy_type.equals("HTTPTunnelConnector"))
            {
                HTTPTunnelConnector type=newHTTPTunnelConnector(ftp_proxy_ip.trim(),ftp_proxy_port);
                ftp.setConnector(type);
            }
            else//ssl代理连接器
            if(ftp_proxy_type.equals("SSLConnector"))
            {              
                SSLConnector type=newSSLConnector();
                ftp.setConnector(type); 
            }                  
        }          
        //连接上FTP
        ftp.connect(ftp_ip, ftp_port);
         
        //自动选择(根据文件内容)
        ftp.setType(FTPClient.TYPE_AUTO);
        //登录FTP
        ftp.login(ftp_username, ftp_password);
        System.out.println("FTP登录成功!");
    }
    catch(Exception err)
    {
        System.out.println("FTP登录失败!");
        return;
    }              
     
    //这个学校的FTP目录是否已存在,不存在就创建之
    try
    {
        ftp.changeDirectory("/"+school_id+"/");
    }
    catch(Exception err)
    {
        ftp.changeDirectory("/");
        ftp.createDirectory(school_id);
    }
     
    try{
        ftp.changeDirectory("/"+school_id+"/");
        //上传文档
        File myfi=newFile(TempDirectory+".zip");
        ftp.upload(myfi);      
        System.out.println("成功上传文件:"+myfi.getName());
    }catch (Exception e) {
        System.out.println("error:"+e.toString());
    }
    //登出
    ftp.disconnect(true);
    System.out.println("结束FTP上传,成功退出!");

0 0
原创粉丝点击