1.Apache FtpServer是一个纯Java实现的FTP服务器
2.既可以作为一个完整的FTP服务器单独使用,也可以在Java程序中调用
3.使用Apache FtpServer实现嵌入式FTP服务器的步骤如下
(1)Apache FtpServer下载地址:http://mina.apache.org/ftpserver-project/index.html
(2)解压后添加需要的jar包在web应用
(3)最简单的嵌入式FTP服务器
<1>运行程序,启动FTP服务器后,在地址栏中输入ftp://localhost
<2>要求输入用户名密码。当然这个FTP是进不去的,因为它是最简单的FTP服务器,简单到没有用户
public static void main(String[] args) throws FtpException {
FtpServerFactory serverFactory = new FtpServerFactory();
// 启动服务
FtpServer server = serverFactory.createServer();
server.start();
}
(4)设置匿名用户及对应的服务器文件夹
<1>添加一个匿名用户anonymous,并设置它对应的文件夹是D:/test
<2>进入ftp://localhost,可以看到D:/test中的文件
<3>此时的FTP权限是只读的,也就是只能查看文件,但是不能增删改
public static void main(String[] args) throws FtpException {
FtpServerFactory serverFactory = new FtpServerFactory();
//设置匿名用户及对应的服务器文件夹
BaseUser user = new BaseUser();
user.setName("anonymous");
user.setHomeDirectory("D:/test");
serverFactory.getUserManager().save(user);
// 启动服务
FtpServer server = serverFactory.createServer();
server.start();
}
(5)用户可写的权限设置
<1>加入可写的权限,
<2>就能对FTP服务器上的文件进行增删改
public static void main(String[] args) throws FtpException {
FtpServerFactory serverFactory = new FtpServerFactory();
//设置匿名用户及对应的服务器文件夹
BaseUser user = new BaseUser();
user.setName("anonymous");
user.setHomeDirectory("D:/test");
//用户可写的权限设置,加入可写的权限
List<Authority> authorities = new ArrayList<Authority>();
authorities.add(new WritePermission());
user.setAuthorities(authorities);
serverFactory.getUserManager().save(user);
// 启动服务
FtpServer server = serverFactory.createServer();
server.start();
}
(6)用户登录
<1>添加用户test,密码是123456
<2>此时客户端要想进入ftp,必须输入正确的用户名密码
public static void main(String[] args) throws FtpException {
FtpServerFactory serverFactory = new FtpServerFactory();
//设置用户名,密码及对应的服务器文件夹
BaseUser user = new BaseUser();
user.setName("test");
user.setPassword("123456");
user.setHomeDirectory("D:/test");
//用户可写的权限设置,加入可写的权限
List<Authority> authorities = new ArrayList<Authority>();
authorities.add(new WritePermission());
user.setAuthorities(authorities);
serverFactory.getUserManager().save(user);
// 启动服务
FtpServer server = serverFactory.createServer();
server.start();
}
(7)在于spring集成过程中,在配置文件加入ftp对应的配置信息即可
(8)使用Apache FtpServer实现嵌入式FTP服务器完毕
4.解压后添加需要的jar包:
(1)ftpserver-core-1.0.6.jar
(2)log4j-1.2.14.jar
(3)mina-core-2.0.4.jar
(4)slf4j-api-1.5.2.jar
(5)slf4j-log4j12-1.5.2.jar
项目中还需要加入log4j的配置文件,没有程序也可以跑,只是会出现一些警告信息而且没有日志记录