apache ftpserver的使用(包含ftplet)
来源:互联网 发布:淘宝口红代购 编辑:程序博客网 时间:2024/05/21 10:27
需要用到的包
ftpserver-core-1.0.6.jar
ftplet-api-1.0.6.jar
mina-core-2.0.4.jar
package com.test;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.ftpserver.FtpServer;import org.apache.ftpserver.FtpServerFactory;import org.apache.ftpserver.ftplet.Authority;import org.apache.ftpserver.ftplet.FtpException;import org.apache.ftpserver.ftplet.FtpSession;import org.apache.ftpserver.ftplet.Ftplet;import org.apache.ftpserver.ftplet.FtpRequest;import org.apache.ftpserver.ftplet.FtpReply;import org.apache.ftpserver.ftplet.FtpletContext;import org.apache.ftpserver.ftplet.FtpletResult;import org.apache.ftpserver.ftplet.UserManager;import org.apache.ftpserver.listener.ListenerFactory;import org.apache.ftpserver.usermanager.PasswordEncryptor;import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;import org.apache.ftpserver.usermanager.impl.BaseUser;import org.apache.ftpserver.usermanager.impl.WritePermission;public class TestServerFactory2 { public static void main(String[] args) { FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory factory = new ListenerFactory(); factory.setPort(1021); // 端口号 serverFactory.addListener("default", factory.createListener()); PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory(); userManagerFactory.setFile(new File("D:\\00SysFile\\softdata\\lunaWorkspace\\ftpServer\\src\\users.properties"));//choose any. We're telling the FTP-server where to read it's user list userManagerFactory.setPasswordEncryptor(new PasswordEncryptor(){ //We store clear-text passwords in this example @Override public String encrypt(String password) { return password; } @Override public boolean matches(String passwordToCheck, String storedPassword) { return passwordToCheck.equals(storedPassword); } }); //添加用户信息 BaseUser user = new BaseUser(); user.setName("test"); user.setPassword("test"); user.setHomeDirectory("d:/home/"); List<Authority> authorities = new ArrayList<Authority>(); authorities.add(new WritePermission()); user.setAuthorities(authorities); UserManager um = userManagerFactory.createUserManager(); try{ um.save(user);//Save the user to the user list on the filesystem }catch (FtpException e1){ //Deal with exception as you need } serverFactory.setUserManager(um); Map<String, Ftplet> m = new HashMap<String, Ftplet>(); m.put("miaFtplet", new MyDefaultPortlet(){ // 自己建个MyDefaultPortlet类 extends DefaultFtplet @Override public void init(FtpletContext ftpletContext) throws FtpException { System.out.println("*********init*********"); System.out.println("Thread #" + Thread.currentThread().getId()); } @Override public void destroy() { System.out.println("*********destroy*********"); System.out.println("Thread #" + Thread.currentThread().getId()); } @Override public FtpletResult beforeCommand(FtpSession session, FtpRequest request) throws FtpException, IOException { System.out.println("*********beforeCommand*********"); System.out.println(session.getUserArgument() + ",session:" + session.toString() + ",getArgument:" + request.getArgument() + ", getCommand:" + request.getCommand() + ",getRequestLine:" + request.getRequestLine()); System.out.println("Thread #" + Thread.currentThread().getId()); return FtpletResult.DEFAULT;//...or return accordingly } @Override public FtpletResult afterCommand(FtpSession session, FtpRequest request, FtpReply reply) throws FtpException, IOException { System.out.println("*********afterCommand*********"); System.out.println("afterCommand " + session.getUserArgument() + ",session:" + session.toString() + ",getArgument:" + request.getArgument() + ", getCommand:" + request.getCommand() + ",getRequestLine:" + request.getRequestLine() + ",getMessage:" + reply.getMessage() + ",reply:" + reply.toString()); System.out.println("Thread #" + Thread.currentThread().getId()); return FtpletResult.DEFAULT;//...or return accordingly } }); serverFactory.setFtplets(m); Map<String, Ftplet> mappa = serverFactory.getFtplets(); System.out.println(mappa.size()); System.out.println("Thread #" + Thread.currentThread().getId()); System.out.println(mappa.toString()); FtpServer server = serverFactory.createServer(); try{ server.start();//Your FTP server starts listening for incoming FTP-connections, using the configuration options previously set }catch (FtpException ex){ //Deal with exception as you need } }}
0 0
- apache ftpserver的使用(包含ftplet)
- Apache FtpServer 的使用研究
- 使用apache的ftpserver搭建ftp服务器
- Apache FtpServer初次使用
- Apache FtpServer[linux] 配置使用
- apache-ftpServer配置与使用
- Apache-ftpserver在eclipse下的部署和使用
- apache的ftpServer安装步骤:
- Apache FtpServer
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器
- 使用Apache FtpServer搭建FTP服务器(续)
- 使用Apache FtpServer搭建FTP服务器 [FlashFXP]
- mysql 存储过程
- 自动、静态、 寄存器、易失变量的区别
- UI-第四讲:事件处理
- zhphpframework (二十)cookie类
- mongodb数据安装
- apache ftpserver的使用(包含ftplet)
- python基础教程共60课-第34课break
- Linux学习笔记(二十四、VI编辑器概述)
- UIViewController的生命周期
- php实现mysql备份
- 【Web】表单中使用post和get的区别
- 从原理剖析自动拆装箱
- sqoop2 去除单引号与自定义分隔符
- 香橙派 orangepi 配置WPA2 无线网络