JAVA搭建ftp服务器
程序里需要使用到ftp服务器进行文件传输,但是又不能让每个用户都自行搭建ftp服务,所以只能在代码里实现这一功能。
一、准备工作
我能想到的需求,大神们都已经实现了。网上有现成的jar。这是下载地址:http://mina.apache.org/ftpserver-project/download_1.1.1.html
我用的是maven项目,所以直接引入pom文件就好。
org.apache.ftpserver ftpserver-core 1.1.1
二、代码实现
1、简单的实现
//创建匿名用户public void createFtp1(){try {FtpServerFactory serverFactory = new FtpServerFactory();BaseUser user = new BaseUser();user.setName("anonymous");user.setHomeDirectory("E:\\ftpServer");serverFactory.getUserManager().save(user);FtpServer server = serverFactory.createServer();server.start();System.out.println("ftp搭建完成");}catch (FtpException e){e.printStackTrace();}}
调用此方法,浏览器访问:ftp://localhost/,效果如下:

2.创建一个用户。
//用户名密码登陆public void createFtp2(){try {FtpServerFactory serverFactory = new FtpServerFactory();BaseUser user = new BaseUser();user.setName("test");user.setPassword("123456");user.setHomeDirectory("E:\\ftpServer");serverFactory.getUserManager().save(user);FtpServer server = serverFactory.createServer();server.start();System.out.println("ftp搭建完成");}catch (FtpException e){e.printStackTrace();}}
3.给这个用户增加写权限。
//增加用户可写权限public void createFtp3(){try {FtpServerFactory serverFactory = new FtpServerFactory();BaseUser user = new BaseUser();user.setName("test");user.setPassword("123456");user.setHomeDirectory("E:\\ftpServer");List authority = new ArrayList();authority.add(new WritePermission());
// //最大同时登录人数+最大同时登录ip
// authority.add(new ConcurrentLoginPermission(2,3));
// //最大下载速度+最大上传速度
// authority.add(new TransferRatePermission(10,30));user.setAuthorities(authority);serverFactory.getUserManager().save(user);FtpServer server = serverFactory.createServer();server.start();System.out.println("ftp搭建完成");}catch (FtpException e){e.printStackTrace();}}
三、感谢
- https://hoochiang.iteye.com/blog/2261213
- http://mina.apache.org/ftpserver-project/download_1.1.1.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
