码迷,mamicode.com
首页 > 编程语言 > 详细

windows7搭建ftp服务器与Java上传下载ftp服务器文件

时间:2016-12-12 13:50:05      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:print   文件流   下载文件   ftpclient   login   服务器   菜单   utf-8   equals   

1.Windows7搭建FTP服务器

1.1 首先新建一个用户,用于登录FTP进行操作,步骤:开始\控制面板\用户帐户和家庭安全\用户帐户\管理帐户\新建账户

技术分享技术分享

 

1.2创建用户完成后我们开始添加IIS程序服务;进入控制面板\程序\打开或关闭Windows功能

技术分享技术分享

技术分享

然后点击打开在FTP服务器前面打勾,也就是把其子菜单的FTP服务和FTP扩展性打勾

1.3 创建FTP站点;进入控制面板\选择管理工具\信息服务管理器\添加站点

技术分享技术分享

技术分享

界面

技术分享

下一步

技术分享

下一步

技术分享

1.4 查看FTP是否部署成功

技术分享技术分享

完成FTP服务器的搭建。

资料http://jingyan.baidu.com/article/dca1fa6f479469f1a4405292.html

2.java上传下载FTP服务器文件

2.1 上传文件

/**
* 上传文件
* @param hostname ftp服务器地址
* @param port ftp服务器端口号
* @param username ftp登录账号
* @param password ftp登录密码
* @param pathname ftp服务保存地址
* @param fileName 上传到ftp的文件名
* @param inputStream 输入文件流
* @return
*/
public static boolean uploadFile(String hostname, int port, String username,
String password, String pathname, String fileName, InputStream inputStream){
boolean flag = false;
FTPClient ftpClient = new FTPClient();
ftpClient.setControlEncoding("utf-8");
try{
ftpClient.connect(hostname, port); //连接ftp服务器
ftpClient.login(username, password); //登录ftp服务器
int replyCode = ftpClient.getReplyCode(); //是否成功登录服务器
if(!FTPReply.isPositiveCompletion(replyCode)){
return flag;
}
ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
ftpClient.makeDirectory(pathname);
ftpClient.changeWorkingDirectory(pathname);
ftpClient.storeFile(fileName, inputStream);
inputStream.close();
ftpClient.logout();
flag = true;
}catch (Exception e) {
e.printStackTrace();
}finally{
if(ftpClient.isConnected()){
try{
ftpClient.disconnect();
}catch(IOException e){
e.printStackTrace();
}
}

}
return true;
}
/** * 上传文件(可对文件进行重命名) *
* @param hostname FTP服务器地址 *
* @param port FTP服务器端口号 *
* @param username FTP登录帐号 *
* @param password FTP登录密码 *
* @param pathname FTP服务器保存目录 *
* @param filename 上传到FTP服务器后的文件名称 *
* @param originfilename 待上传文件的名称(绝对地址) *
* @return */
public static boolean uploadFileFromProduction(String hostname, int port, String username,
String password, String pathname, String filename, String originfilename){
boolean flag = false;
try {
InputStream inputStream = new FileInputStream(new File(originfilename));
flag = uploadFile(hostname, port, username, password, pathname, filename, inputStream);
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/** 上传文件(不可以进行文件的重命名操作) *
* @param hostname FTP服务器地址 *
* @param port FTP服务器端口号 *
* @param username FTP登录帐号 *
* @param password FTP登录密码 *
* @param pathname FTP服务器保存目录 *
* @param originfilename 待上传文件的名称(绝对地址) *
* @return */
public static boolean uploadFileFromProduction(String hostname, int port, String username,
String password, String pathname, String originfilename){
boolean flag = false;
try {
String fileName = new File(originfilename).getName();
InputStream inputStream = new FileInputStream(new File(originfilename));
flag = uploadFile(hostname, port, username, password, pathname, fileName, inputStream);
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}

2.2下载文件

/** * 下载文件 *
* @param hostname FTP服务器地址 *
* @param port FTP服务器端口号 *
* @param username FTP登录帐号 *
* @param password FTP登录密码 *
* @param pathname FTP服务器文件目录 *
* @param filename 文件名称 *
* @param localpath 下载后的文件路径 *
* @return */
public static boolean downloadFile(String hostname, int port, String username,
String password, String pathname, String filename, String localpath){
boolean flag = false;
FTPClient ftpClient = new FTPClient();
try {
//连接FTP服务器
ftpClient.connect(hostname, port);
//登录FTP服务器
ftpClient.login(username, password);
//验证FTP服务器是否登录成功
int replyCode = ftpClient.getReplyCode();
if(!FTPReply.isPositiveCompletion(replyCode)){
return flag;
}
//切换FTP目录
ftpClient.changeWorkingDirectory(pathname);
FTPFile[] ftpFiles = ftpClient.listFiles();
for(FTPFile file : ftpFiles){
if(filename.equalsIgnoreCase(file.getName())){
File localFile = new File(localpath + "/" + file.getName());
OutputStream os = new FileOutputStream(localFile);
ftpClient.retrieveFile(file.getName(), os);
os.close();
}
}
ftpClient.logout();
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally{
if(ftpClient.isConnected()){
try { ftpClient.logout();
} catch (IOException e) {

}


}
} return flag;
}

1.3 删除文件

/** * 删除文件 *
* @param hostname FTP服务器地址 *
* @param port FTP服务器端口号 *
* @param username FTP登录帐号 *
* @param password FTP登录密码 *
* @param pathname FTP服务器保存目录 *
* @param filename 要删除的文件名称 *
* @return */
public static boolean deleteFile(String hostname, int port, String username, String password,
String pathname, String filename){
boolean flag = false;
FTPClient ftpClient = new FTPClient();
try {
//连接FTP服务器
ftpClient.connect(hostname, port);
//登录FTP服务器
ftpClient.login(username, password);
//验证FTP服务器是否登录成功
int replyCode = ftpClient.getReplyCode();
if(!FTPReply.isPositiveCompletion(replyCode)){
return flag;
}
//切换FTP目录
ftpClient.changeWorkingDirectory(pathname);
ftpClient.dele(filename);
ftpClient.logout();
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally{
if(ftpClient.isConnected()){
try {
ftpClient.logout();
} catch (IOException e) {

}
}
}
return flag;
}

3.4 测试

技术分享

技术分享

成功。完成。

参考:http://www.jb51.net/article/98032.htm

 

windows7搭建ftp服务器与Java上传下载ftp服务器文件

标签:print   文件流   下载文件   ftpclient   login   服务器   菜单   utf-8   equals   

原文地址:http://www.cnblogs.com/snfei20161111gg/p/6163843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!