ftpclient调用apache ftpserver进行文件的上传下载

package com.wdh.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;

import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

/**
 * ftpclient调用apache ftpserver进行文件的上传下载
 * @version commons-net-3.4.jar apache-ftpserver1.0.3
 * @date 2016年2月23日 16:22
 * */
public class FtpClientDemo {
	private static final String FTP_URL = "192.168.6.25";
	private static final int FTP_PORT = 2121;
	private static final String FTP_USER_NAME = "admin";
	private static final String FTP_PASSWORD = "admin";

	public static void main(String[] args) throws Exception {
		//FileInputStream in = new FileInputStream(new File("D:/ftpDemo.png"));
		//boolean flag = uploadFile("/xxx.png", in);
		
		//String remoteFile = "/pub/201602/xxx.png";
		//FileOutputStream fos = new FileOutputStream(new File("d:/444.png"));
		//downloadTest(remoteFile,fos);
		createDir("/hello/world");
	}


	public static boolean uploadFile(String remoteFile,FileInputStream localFile){
		boolean success = false;
		FTPClient ftpClient = new FTPClient();
		try {
			ftpClient.connect(FTP_URL,FTP_PORT);
			boolean loginResult = ftpClient.login(FTP_USER_NAME, FTP_PASSWORD);
			System.out.println("fpt login result:" + loginResult);
			int reply = ftpClient.getReplyCode();
			System.out.println("reply:" + reply);
			ftpClient.enterLocalPassiveMode();
			ftpClient.changeWorkingDirectory("/" ); 
			ftpClient.setControlEncoding("GBK" ); 
			ftpClient.setBufferSize(1024); 
			ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
			ftpClient.storeFile("xxx.png", localFile);
			localFile.close();
			success = true;
			ftpClient.logout();
			ftpClient.disconnect();
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return success;
	}

	public static void downloadTest(String remoteFile,FileOutputStream fos) {
		FTPClient ftpClient = new FTPClient();
		try {
			ftpClient.connect(FTP_URL,FTP_PORT);
			ftpClient.login(FTP_USER_NAME, FTP_PASSWORD);
			String remoteFileName = "/xxx.png";
			
			ftpClient.enterLocalPassiveMode();
			ftpClient.setBufferSize(1024);
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			ftpClient.retrieveFile(remoteFileName, fos);
			fos.close();
			ftpClient.logout();
			ftpClient.disconnect();
		} catch (IOException e) {
			e.printStackTrace();
			throw new RuntimeException("FTP客户端出错!", e);
		} 
	}
	
	public static void createDir(String dir){
		FTPClient ftpClient = new FTPClient();
		try {
			ftpClient.connect(FTP_URL, FTP_PORT);
			ftpClient.login(FTP_USER_NAME, FTP_PASSWORD);
			boolean result = ftpClient.makeDirectory(dir);
			System.out.println("mkdir result:" + result);
			ftpClient.logout();
			ftpClient.disconnect();
		} catch (SocketException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

  

posted @ 2016-02-23 16:24  空虚公子  阅读(557)  评论(0)    收藏  举报