windows7搭建ftp服务器与Java上传下载ftp服务器文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows7搭建ftp服务器与Java上传下载ftp服务器文件相关的知识,希望对你有一定的参考价值。
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服务器文件的主要内容,如果未能解决你的问题,请参考以下文章