ftp服务器文件上传下载
2017-07-25 14:57
537 查看
package com.liucb.ftputil;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import java.io.*;
/**
* windows系统下配置FTP服务器
* IP 本机IP地址
* 端口 21
* ftp目录 D:/liucbftp
*/
public class FtpUtil {
//连接ftp服务器
public static FTPClient connection(String url,int port,String userName,String password){
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(url, port);//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(userName, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return null;
}
} catch (IOException e) {
e.printStackTrace();
}
return ftp;
}
//文件上传
/**
* Description: 向FTP服务器上传文件
* @param url FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param path FTP服务器保存目录
* @param file 上传到FTP服务器上的文件
* @param newFileName 上传到FTP服务器后的文件名
* @return 成功返回true,否则返回false
*/
public static boolean uploadFile(String url,int port,String username, String password, String path, File file,String newFileName) {
boolean success = false;
FTPClient ftp = FtpUtil.connection(url,port,username,password);
if(ftp!=null){
try {
ftp.changeWorkingDirectory(path);
InputStream input = new FileInputStream(file);
ftp.storeFile(newFileName, input);
input.close();
ftp.logout();
success = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (Exception ioe) {
}
}
}
}
return success;
}
//文件下载
/**
* Description: 从FTP服务器下载文件
* @param url FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public static boolean downloadFile(String url, int port,String username, String password, String remotePath,String fileName,String localPath) {
boolean success = false;
FTPClient ftp = FtpUtil.connection(url,port,username,password);
if(ftp!=null){
try {
ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for(FTPFile ff:fs){
if(ff.getName().equals(fileName)){
File localFile = new File(localPath+"/"+ff.getName());
OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(), is);
is.close();
}
}
ftp.logout();
success = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (Exception ioe) {
}
}
}
}
return success;
}
public static void main(String[] args) {
//上传测试
try {
File file = new File("F:/jins.xlsx");
boolean flag = uploadFile("172.18.22.99", 21, "Administrator", "toor", "D:/liucbftp", file ,"liucb.xlsx");
System.out.println(flag);
} catch (Exception e) {
e.printStackTrace();
}
//下载测试
/*
boolean flag = downloadFile("172.18.22.99", 21, "Administrator", "toor", "D:/liucbftp", "jins.xlsx","E:");
System.out.println(flag);
*/
}
}
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import java.io.*;
/**
* windows系统下配置FTP服务器
* IP 本机IP地址
* 端口 21
* ftp目录 D:/liucbftp
*/
public class FtpUtil {
//连接ftp服务器
public static FTPClient connection(String url,int port,String userName,String password){
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(url, port);//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(userName, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return null;
}
} catch (IOException e) {
e.printStackTrace();
}
return ftp;
}
//文件上传
/**
* Description: 向FTP服务器上传文件
* @param url FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param path FTP服务器保存目录
* @param file 上传到FTP服务器上的文件
* @param newFileName 上传到FTP服务器后的文件名
* @return 成功返回true,否则返回false
*/
public static boolean uploadFile(String url,int port,String username, String password, String path, File file,String newFileName) {
boolean success = false;
FTPClient ftp = FtpUtil.connection(url,port,username,password);
if(ftp!=null){
try {
ftp.changeWorkingDirectory(path);
InputStream input = new FileInputStream(file);
ftp.storeFile(newFileName, input);
input.close();
ftp.logout();
success = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (Exception ioe) {
}
}
}
}
return success;
}
//文件下载
/**
* Description: 从FTP服务器下载文件
* @param url FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public static boolean downloadFile(String url, int port,String username, String password, String remotePath,String fileName,String localPath) {
boolean success = false;
FTPClient ftp = FtpUtil.connection(url,port,username,password);
if(ftp!=null){
try {
ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for(FTPFile ff:fs){
if(ff.getName().equals(fileName)){
File localFile = new File(localPath+"/"+ff.getName());
OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(), is);
is.close();
}
}
ftp.logout();
success = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (Exception ioe) {
}
}
}
}
return success;
}
public static void main(String[] args) {
//上传测试
try {
File file = new File("F:/jins.xlsx");
boolean flag = uploadFile("172.18.22.99", 21, "Administrator", "toor", "D:/liucbftp", file ,"liucb.xlsx");
System.out.println(flag);
} catch (Exception e) {
e.printStackTrace();
}
//下载测试
/*
boolean flag = downloadFile("172.18.22.99", 21, "Administrator", "toor", "D:/liucbftp", "jins.xlsx","E:");
System.out.println(flag);
*/
}
}
相关文章推荐
- Java通过FTP服务器上传下载文件的解决方案
- Android FTP服务器搭建与文件上传及下载
- C# 之 FTP服务器中文件上传与下载(一)
- loadrunner脚本,从FTP服务器上上传和下载文件
- C# 之 FTP服务器中文件上传与下载(四)
- Java通过FTP服务器上传下载文件的方法
- java做的比较完善的FTP上传下载文件服务器源码
- Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法
- Android和FTP服务器交互,上传下载文件(实例demo)
- php 一键上传文件,ftp上传和下载到其他服务器
- ftp文件服务器上传下载案例
- Java连接FTP服务器并且实现对其文件的上传和下载
- Android和FTP服务器交互,上传下载文件(实例demo)
- java从ftp服务器上传下载文件
- java实现文件上传下载至ftp服务器
- Java FTP 实现跨服务器文件上传下载
- Windows下配置ftp服务器,使用QT实现文件上传和下载
- JAVA连接FTP服务器,并上传/下载文件代码
- C# 之 FTP服务器中文件上传与下载(二)
- window服务器通过sftp从linux下载文件,并ftp上传到window服务器