FTP上传下载

       此前做个小项目,用到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("登陆失败");
		}
	}
}
	


  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值