文件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 ,