1、ftp实体bean
package org.imos.cfdispatch.util.ftp;
public class FTPEntityBean {
String hostName;
String userName;
String password;
String port;
String DownloadPath;
String SaveFilePath;
public FTPEntityBean(String hostName, String userName, String password,
String port, String downloadPath, String saveFilePath) {
super();
this.hostName = hostName;
this.userName = userName;
this.password = password;
this.port = port;
DownloadPath = downloadPath;
SaveFilePath = saveFilePath;
}
public String getDownloadPath() {
return DownloadPath;
}
public void setDownloadPath(String downloadPath) {
DownloadPath = downloadPath;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
public String getSaveFilePath() {
return SaveFilePath;
}
public void setSaveFilePath(String saveFilePath) {
SaveFilePath = saveFilePath;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
2.ftp连接
package org.imos.cfdispatch.util.ftp;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class FtpLogin {
/**
*
* @Title: connectFTP
* @Description:连接FTP服务器
* @param @param ftpbean
* @param @return 设定文件
* @return FTPClient 返回类型
* @throws
*/
public static FTPClient connectFTP(FTPEntityBean ftpbean) {
FTPClient downloadFtp = new FTPClient();
String hostName=ftpbean.getHostName();
String userName=ftpbean.getUserName();
String password=ftpbean.getPassword();
String port=ftpbean.getPort();
int reply;
try {
downloadFtp.setDataTimeout(2000);
downloadFtp.connect(hostName, Integer.parseInt(port));
reply = downloadFtp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
downloadFtp.disconnect();
return null;
}
if (!downloadFtp.login(userName, password)) {
downloadFtp.logout();
return null;
}
} catch (SocketException ex) {
// Log.error("登录FTP失败");
ex.printStackTrace();
downloadFtp=null;
} catch (IOException e) {
e.printStackTrace();
// Log.error("登录FTP失败");
downloadFtp=null;
if (downloadFtp.isConnected()) {
try {
downloadFtp.disconnect();
} catch (IOException f) {
return null;
}
}
}
return downloadFtp;
}
public void getFTPProper(){
}
}
3.ftp上传
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.imos.cfdispatch.util.ftp;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
public class FtpUpload {
String hostName = "192.168.0.123";
String userName = "test";
String password = "test";
String remoteDir = "aaa";
String port = "21";
FTPEntityBean ftpbean;
public FtpUpload(){
}
/**
*
* <p>Title: </p>
* <p>FTP连接信息 </p
* @param ftpbean
*/
public FtpUpload(FTPEntityBean ftpbean) {
this.hostName=ftpbean.hostName;
this.userName=ftpbean.getUserName();
this.password=ftpbean.getPassword();
this.port=ftpbean.getPort();
this.remoteDir=ftpbean.getSaveFilePath();
this.ftpbean=ftpbean;
}
/**
*
* @Title: Upload
* @Description: 数据上传
* @param @param localfilename 本地文件路径
* @param @param remotefilename 上传文件路径
* @return void 返回类型
* @throws
*/
public void Upload(String localfilename, String remotefilename){
ftpbean.setHostName(remotefilename);
if(UploadData(ftpbean,localfilename,remotefilename)){
}else{
}
}
/**
*
* @Title: UploadData
* @Description: 数据上传
* @param @param ftpbean
* @param @param localfilename
* @param @param remotefilename
* @param @return 设定文件
* @return boolean 返回类型
* @throws
*/
public boolean UploadData(FTPEntityBean ftpbean,String localfilename, String remotefilename){
try {
FTPClient ftp = FtpLogin.connectFTP(ftpbean);
if(ftp==null)return false;
InputStream input = new FileInputStream(localfilename);
ftp.storeFile(remotefilename, input);
ftp.disconnect();
return true;
} catch (FileNotFoundException ex) {
ex.printStackTrace();
return false;
}catch(IOException ex){
ex.printStackTrace();
return false;
}
}
public static void main(String args[]) throws Exception {
}
}
4.ftp下载
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.imos.cfdispatch.util.ftp;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class FtpDownload {
/**
*
* @Title: downloadFile
* @Description: 数据下传
* @param @param ftpbean
* @param @return 设定文件
* @return boolean 返回类型
* @throws
*/
public boolean downloadFile(FTPEntityBean ftpbean) {
FTPClient ftp = FtpLogin.connectFTP(ftpbean);
boolean result = false;
if (ftp != null) {
String filename=null;
try {
ftp.changeWorkingDirectory(ftpbean.getDownloadPath());
FTPFile[] filelist = ftp.listFiles();
for (FTPFile file : filelist) {
if (file.isFile()) {
filename = file.getName();
filename= new String(filename.getBytes(),"UTF-8");
System.out.println("正在下载文件" + filename + ",请等待....");
File fi = new File(ftpbean.getSaveFilePath() + filename);
FileOutputStream fos = new FileOutputStream(fi);
ftp.retrieveFile(filename, fos);
fos.close();
System.out.println("下载文件" + filename + ",完成!");
result = true;
}
}
if(!result){
System.out.println("没有的文件!");
}
ftp.logout();
} catch (IOException e) {
System.out.println("下载文件" + filename + ",失败!" + e.getMessage());
result = false;
}
} else {
result = false;
}
return result;
}
}