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();
}
}
}