FtpServerFactory serverFactory = new FtpServerFactory();
PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
userManagerFactory.setFile(new File("ftpusers.properties"));
UserManager userManager = userManagerFactory.createUserManager();
serverFactory.setUserManager(userManager);
ListenerFactory listenerFactory = new ListenerFactory();
listenerFactory.setPort(21);
FtpServer server = serverFactory.createServer();
serverFactory.addListener("default", listenerFactory.createListener());
public void handleFtpRequest(FtpServer server) {
server.start();
while (true) {
FtpConnection connection = server.createConnection();
connection.accept();
FtpRequest request = connection.readRequest();
if (request instanceof UploadRequest) {
handleUploadRequest((UploadRequest) request);
} else if (request instanceof DownloadRequest) {
handleDownloadRequest((DownloadRequest) request);
}
connection.close();
}
}
public void handleUploadRequest(UploadRequest request) {
String fileName = request.getFileName();
InputStream fileStream = request.getFileStream();
saveFileToPath(fileName, fileStream);
}
public void handleDownloadRequest(DownloadRequest request) {
String fileName = request.getFileName();
InputStream fileStream = readFileFromPath(fileName);
request.sendFile(fileStream);
}