此前做个小项目,用到FTP上传下载,在此大家相互交流学习
org.apache.commons.net.ftp.FTPClient Jar包下载地址: http://download.csdn.net/detail/daohaode123/8394089
org.junit.Test Jar包下载地址:http://download.csdn.net/detail/daohaode123/8394093
package com.zjl;
import java.io.File;
import java.io.FileOutputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.junit.Test;
public class FtpUtil{
/**
* 登录到FTP服务器
* @param ftpclient
* @param serverURl
* @param port
* @param loginName
* @param loginPassword
* @return true or false
*/
public boolean loginToFTPServer(FTPClient ftpclient, String serverURl, int port,
String loginName, String loginPassword){
boolean flag = false;
try {
ftpclient.connect(serverURl,port);
ftpclient.login(loginName, loginPassword);
flag = true;
} catch (Exception e) {
e.printStackTrace();
flag = false;
}
return flag;
}
/**
* 向FTP服务器上传文件
*
* @param serverURl
* @param port
* @param loginName
* @param loginPassword
*
* @param serverPath 服务器路径
* @param filePathName 本地文件路径
* @return true or false
*/
public boolean uploadToFTP(String serverURl, int port, String loginName,
String loginPassword, String serverPath, String filePathName){
FTPClient ftpClient = null;
FileOutputStream fos = null;
try {
ftpClient = new FTPClient();
boolean isOpen = loginToFTPServer(ftpClient,serverURl,port,
loginName,loginPassword);//登录到FTP服务器
if(isOpen){
ftpClient.changeWorkingDirectory(serverPath);
ftpClient.enterLocalActiveMode();
File file = new File(filePathName);
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("UTF-8");
ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
fos = new FileOutputStream(file);
ftpClient.retrieveFile(file.getName(), fos);
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return false;
}
/**
* 从FTP服务器下载文件到本地
*
* @param serverURl
* @param port
* @param loginName
* @param loginPassword
*
* @param serverPath 服务器路径
* @param localpath 本地路径
* @param fileName 要下载的文件
* @return true or false
*/
public boolean downloadFromFTP(String serverURl, int port, String loginName,
String loginPassword, String serverPath,String localpath, String fileName){
FTPClient ftpClient = null;
FileOutputStream fos = null;
try {
ftpClient = new FTPClient();
boolean isOpen = loginToFTPServer(ftpClient,serverURl,port,
loginName,loginPassword);//登录到FTP服务器
if(isOpen){
ftpClient.changeWorkingDirectory(serverPath);
ftpClient.enterLocalActiveMode();
File file = new File(localpath + fileName);
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("UTF-8");
ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
fos = new FileOutputStream(file);
ftpClient.retrieveFile(file.getName(), fos);
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return false;
}
@Test
public void test(){
FTPClient ftpClient = new FTPClient();
boolean isOpen = loginToFTPServer(ftpClient,"8.99.5.120",21,
"root","root");
if(isOpen){
System.out.println("登陆成功");
}else{
System.out.println("登陆失败");
}
}
}