分类:
2008-09-12 09:11:56
import org.apache.commons.net.ftp.*;
import java.io.File;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.net.SocketException;
public class FtpOperator {
FtpConfig ftpConfig;
public FtpOperator(FtpConfig ftpConfig) {
this.ftpConfig = ftpConfig;
}
public FtpOperator(String serverHost, String port, String user, String password) {
this(new FtpConfig(serverHost, port, user, password, null, null));
}
public FtpOperator(String serverHost, String port){
this(new FtpConfig(serverHost, port, "anonymous", "", null, null));
}
public FtpConfig getFtpConfig() {
return ftpConfig;
}
public void setFtpConfig(FtpConfig ftpConfig) {
this.ftpConfig = ftpConfig;
}
public FTPClient startClient()throws FtpException{
FTPClient ftpClient = new FTPClient();
String serverHost = ftpConfig.getServerHost();
String serverPort = ftpConfig.getServerPort();
int port = 0;
try {
port = Integer.parseInt(serverPort);
} catch (Exception e) {
throw new FtpException("Wrong FTP port:"+ftpConfig.getServerPort());
}
try {
ftpClient.connect(serverHost,port);
String username = ftpConfig.getUser(),
password = ftpConfig.getPassword();
if(!ftpClient.login(username, password))
throw new FtpException("Wrong FTP login/passwd:"+username+"/"+password);
}catch(SocketException se){
throw new FtpException("Socket timeout cannot set.");
}catch(IOException ioe) {
throw new FtpException("Cannot open ftp connection: "+serverHost+":"+serverPort);
}
return ftpClient;
}
public void disposeClient(FTPClient ftpClient){
if(ftpClient==null)
return;
if(ftpClient.isConnected()){
try {
ftpClient.disconnect();
} catch (IOException e) {
}
}
}
[1]