zoukankan      html  css  js  c++  java
  • ftp客户端编程--edtftpj

    import java.io.File;
    import java.io.IOException;


    import com.enterprisedt.net.ftp.FTPConnectMode;
    import com.enterprisedt.net.ftp.FTPException;
    import com.enterprisedt.net.ftp.FTPTransferType;
    import com.enterprisedt.net.ftp.FileTransferClient;
    import com.enterprisedt.net.ftp.WriteMode;


    /**
     * 图片上传工具类.
     * 
     * @author wangenbin(bradley@roadleader.com.cn)
     * 
     * 
     */
    public class FtpTool {
    /**
    * edtptpj的上传工具
    */
    private FileTransferClient ftp;


    /**
    * FTP IP
    */
    private String ip;


    /**
    * FTP端口号
    */
    private int port;


    /**
    * FTP用户名
    */
    private String username;


    /**
    * FTP密码
    */
    private String password;


    /**

    * 构造方法,初始化FTP IP、FTP端口、FTP用户名、FTP密码

    * @param ip
    *            FTP IP
    * @param port
    *            FTP端口
    * @param username
    *            FTP用户名
    * @param password
    *            FTP密码
    */
    public FtpTool(String ip, int port, String username, String password) {
    this.ip = ip;
    this.port = port;
    this.username = username;
    this.password = password;
    }


    /**

    * 连接FTP

    * @throws FTPException
    *             FTPException
    * @throws IOException
    *             IOException
    * @author XXG
    */
    public void connect() throws FTPException, IOException {
    ftp = new FileTransferClient();
    ftp.setRemoteHost(ip);
    ftp.setRemotePort(port);
    ftp.setUserName(username);
    ftp.setPassword(password);


    // 设置二进制方式上传
    ftp.setContentType(FTPTransferType.BINARY);
    ftp.getAdvancedSettings().setControlEncoding("GBK");
    ftp.getAdvancedFTPSettings().setConnectMode(FTPConnectMode.PASV);
    ftp.connect();
    }


    /**
    * 是否连接

    * @return
    */
    public boolean isConnect() {
    if (ftp == null) {
    return false;
    } else {
     
    return ftp.isConnected();
    }
    }


    public void stopUpload() {
    if (ftp != null) {


    ftp.cancelAllTransfers();


    }
    }


    /**

    * 上传本地文件到FTP服务器上,文件名与原文件名相同

    * @param localFile
    *            本地文件路径
    * @param remoteFilePath
    *            上传到FTP服务器所在目录(该目录必须已经存在)
    * @throws IOException
    *             IOException
    * @throws FTPException
    *             FTPException
    * @author XXG

    */
    public void resumeUpload(String localFile, String remoteFilePath)
    throws FTPException, IOException {


    // Date d = new Date();
    File local = new File(localFile);
    // String remote_tmp = local.getName() + ".tmp";


    // 上传:WriteMode.RESUME表示断点续传


    String directoryStr[] = remoteFilePath.split("\\");


     
     
    for (String str : directoryStr) {
    ftp.directoryNameList();
    // if (!ftp.exists(str)) {
    try{
      ftp.createDirectory(str);
    }catch(FTPException e){
    // System.out.println("-------------");
    }
    // }
    ftp.changeDirectory(str);
    }


     
    ftp.uploadFile(localFile, local.getName(), WriteMode.RESUME);


    for (String str : directoryStr) {
    ftp.changeToParentDirectory();
    }


    // 还原到原来的根目录


    // ftp.rename("you\" + remote_tmp, "you\" + local.getName());
    }


    /**

    * 关闭FTP连接

    * @throws IOException
    *             IOException
    * @throws FTPException
    *             FTPException
    * @author XXG
    */
    public void close() throws FTPException, IOException {
    ftp.disconnect(true);


    }

    }
  • 相关阅读:
    如何增强Linux和Unix服务器系统安全性
    FTP连接不上的解决方法
    PHP获取当前服务器详细信息
    要想提高电脑开机速度首先需要设置这几个功能
    Centos7下安装iptables防火墙
    centos下LVM配置与管理
    基于LNMP环境的ssh2扩展
    60个开发者不容错过的免费资源库
    MySql命令的基本操作
    存储过程 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果
  • 原文地址:https://www.cnblogs.com/wangnbin/p/6058914.html
Copyright © 2011-2022 走看看