当前位置:编程学习 > JAVA >>

文件FTP上传支持断点续传demo

package cn.eason.util.common;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;


import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;


/**************************************************************
* 文件名称: ContinueFTP.java
* 功能描述: ftp文件上传功能,依赖commons-net-3.1.jar实现
* 创建日期: 2012-5-21
* 创建地址: 西安
* 作者:  Eric.Hao
**************************************************************/
public class ContinueFTP {
       
        private FTPClient ftpClient = new FTPClient();
       
        public ContinueFTP(){
               
                //设置将过程中使用到的命令输出到控制台
                this.ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
        }


        /**
     * java编程中用于连接到FTP服务器
     * @param hostname 主机名
     * @param port 端口
     * @param username 用户名
     * @param password 密码
     * @return 是否连接成功
     * @throws IOException
     */
         public boolean connect(String hostname,int port,String username,String password)
                 throws IOException {
                 //连接到FTP服务器
                 ftpClient.connect(hostname, port);
                 //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
                 if(FTPReply.isPositiveCompletion(ftpClient.getReplyCode()))
                 {
                    
                         if(ftpClient.login(username, password))
                         {
                                  return true;
                     }
                 }
               
                          disconnect();
                          return false;


         }


         /**
          * 从FTP服务器上下载文件,支持断点续传功能
          * @param remote 远程文件路径
          * @param local 本地文件路径
          * @param mode tb传输方式:PassiveMode方式,ActiveMode方式
          * @return 是否成功
          * @throws IOException
          */
         public DownloadStatus download(String remote,String local,String mode) throws IOException{


                         //设置ftp传输方式
                             if(mode.equalsIgnoreCase("P")){
                                     //PassiveMode传输
                                     ftpClient.enterLocalPassiveMode();
                             }
                             else {
                                     //ActiveMode传输
                                     ftpClient.enterLocalActiveMode();
                             }
        
                             //设置以二进制流的方式传输
                  ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                 
                  //下载状态
            &

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,