JAVA搭建ftp服务器

程序里需要使用到ftp服务器进行文件传输,但是又不能让每个用户都自行搭建ftp服务,所以只能在代码里实现这一功能。

一、准备工作

我能想到的需求,大神们都已经实现了。网上有现成的jar。这是下载地址:http://mina.apache.org/ftpserver-project/download_1.1.1.html

我用的是maven项目,所以直接引入pom文件就好。

 <!--ftp服务-->
 <dependency>
     <groupId> org.apache.ftpserver </groupId>
     <artifactId> ftpserver-core </artifactId>
     <version> 1.1.1 </version>
 </dependency>

二、代码实现

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> authority = new ArrayList<Authority>();
            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();
        }
    }

三、感谢

  1. https://hoochiang.iteye.com/blog/2261213
  2. http://mina.apache.org/ftpserver-project/download_1.1.1.html
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建JavaFTP服务器,您可以按照以下步骤进行操作: 1. 在pom.xml文件中添加FTP服务器的依赖和管理版本: ```xml <properties> <ftpserver.version>1.1.1</ftpserver.version> </properties> <dependencies> <dependency> <groupId>org.apache.ftpserver</groupId> <artifactId>ftpserver-core</artifactId> <scope>compile</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.ftpserver</groupId> <artifactId>ftpserver-core</artifactId> <version>${ftpserver.version}</version> </dependency> </dependencies> </dependencyManagement> ``` 2. 编写Java代码来搭建FTP服务器。您可以使用Apache FtpServer来实现: ```java import org.apache.ftpserver.FtpServer; import org.apache.ftpserver.FtpServerFactory; import org.apache.ftpserver.listener.ListenerFactory; import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory; public class FtpServerExample { public static void main(String[] args) throws Exception { FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory listenerFactory = new ListenerFactory(); listenerFactory.setPort(21); // 设置FTP服务器的端口号 serverFactory.addListener("default", listenerFactory.createListener()); PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory(); userManagerFactory.setFile(new File("users.properties")); // 指定用户属性文件的路径 serverFactory.setUserManager(userManagerFactory.createUserManager()); FtpServer server = serverFactory.createServer(); server.start(); } } ``` 3. 创建一个`users.properties`文件,用于指定FTP服务器的用户和密码。例如: ``` user1=password1,admin user2=password2 ``` 4. 运行Java代码,启动FTP服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值