package com.nxt.portal.util.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class FTPUtil {
/**
* ftp服务器的ip地址
*/
private String url;
/**
* ftp服务器的端口
*/
private int port;
/**
* ftp的用户名
*/
private String username;
/**
* ftp的密码
*/
private String password;
/**
* @author liguo 2009-04-27 15:39
* 把文件上传到服务器
* @param savePath 保存到ftp服务器的具体路径
* @param filePath 需要上传的本地文件的路径
* @return true 表示上传成功 false 上传失败
*/
public boolean uploadFile(String savePath,String filePath) {
// 初始表示上传失败
boolean success = false;
// 创建FTPClient对象
FTPClient ftp = new FTPClient();
try {
int loginFlag=0;
// 连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(url
ftp.connect(url , port);
// 登录ftp
ftp.login(username , password);
// 看返回的值是不是230,如果是,表示登陆成功
loginFlag = ftp.getReplyCode ();
// 以2开头的返回值就会为真
if (!FTPReply.isPositiveCompletion(loginFlag)) {
ftp.disconnect ();
return success;
}
// 转到指定上传目录
ftp.changeWorkingDirectory(savePath );
// 将上传文件存储到指定目录
File f = new File(filePath);
InputStream is = new FileInputStream(f);
ftp.storeFile(f.getName (), is);
// 关闭输入流
is.close();
// 退出ftp
ftp.logout ();
// 表示上传成功
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if ( ftp.isConnected ()) {
try {
ftp.disconnect ();
} catch (IOException ioe) {
}
}
}
return success;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public FTPUtil(String url, int port, String username, String password) {
this.url = url;
this.port = port;
this.username = username;
this.password = password;
}
}