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);


}

}
原文地址:https://www.cnblogs.com/wangnbin/p/6058914.html