`
chunchong
  • 浏览: 38370 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

基于Apache FtpServer 的Ftp服务器

    博客分类:
  • Ftp
 
阅读更多

    本文介绍通过spring 集成的方式来实现。创建spring-apacheFtpServer.xml文件如下图所示

 

 

<?xml version="1.0" encoding="UTF-8"?>
<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
	   http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd	
	   "
	id="apacheFtpServer">
	<listeners>
		<nio-listener name="default" port="21">
		</nio-listener>
	</listeners>
	<file-user-manager file="ftpConfig.properties" />
</server>

引入的属性文件ftpConfig.properties如下所示

 

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Password is "admin"
ftpserver.user.admin.userpassword=21232F297A57A5A743894A0E4A801FC3
ftpserver.user.admin.homedirectory=F:\\temp
ftpserver.user.admin.enableflag=true
ftpserver.user.admin.writepermission=true
ftpserver.user.admin.maxloginnumber=0
ftpserver.user.admin.maxloginperip=0
ftpserver.user.admin.idletime=0
ftpserver.user.admin.uploadrate=0
ftpserver.user.admin.downloadrate=0

ftpserver.user.anonymous.userpassword=
ftpserver.user.anonymous.homedirectory=F:\\temp
ftpserver.user.anonymous.enableflag=true
ftpserver.user.anonymous.writepermission=false
ftpserver.user.anonymous.maxloginnumber=20
ftpserver.user.anonymous.maxloginperip=2
ftpserver.user.anonymous.idletime=300
ftpserver.user.anonymous.uploadrate=4800
ftpserver.user.anonymous.downloadrate=4800

 实现如下java代码。

 

package com.sdjxd.util;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.ftpserver.ftplet.FtpException;
import org.apache.ftpserver.impl.DefaultFtpServer;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

/**
 * 项目启动的时候,就开启ftp服务器
 * 
 * @author zhen
 * 
 */
public class ApacheFtpServerListener implements ServletContextListener {
	private static final Logger logger = Logger
			.getLogger(ApacheFtpServerListener.class);
	private static final String FTPSERVER_CONTEXT_NAME = "FTPSERVER_CONTEXT_NAME";

	public void contextDestroyed(ServletContextEvent sce) {
		logger.info("正在停止FTP服务....");
		DefaultFtpServer server = (DefaultFtpServer) sce.getServletContext()
				.getAttribute(FTPSERVER_CONTEXT_NAME);
		if (server != null) {
			server.stop();
			sce.getServletContext().removeAttribute(FTPSERVER_CONTEXT_NAME);
			logger.info("FTP服务已停止!");
		} else {
			logger.info("停止FTP服务出错!");
		}
	}

	public void contextInitialized(ServletContextEvent sce) {
		logger.info("正在开启FTP服务....");
		ApplicationContext ac = WebApplicationContextUtils
				.getWebApplicationContext(sce.getServletContext());
		DefaultFtpServer server = (DefaultFtpServer) ac
				.getBean("apacheFtpServer");
		sce.getServletContext().setAttribute(FTPSERVER_CONTEXT_NAME, server);
		try {
			server.start();
			logger.info("FTP服务已开启!");
		} catch (FtpException e) {
			logger.error(e.getMessage());
		}
	}

}

 最后在web.xml文件中加入监听

 

	<listener>
		<description>apache ftp server监听器</description>
		<listener-class>com.sdjxd.util.ApacheFtpServerListener</listener-class>
	</listener>

 至此Ftp文件服务器架设成功,让我们用ftp客户端来测试一下我们的Ftp服务器吧。

 

注意 写道
Ftp客户端连接服务器编码要用utf-8,否则可能会出现路径或文件名乱码的情况!

 由于附件大小的限制,源码放到了CSDN,有需要的童鞋请到这里下载

FtpServer源码

分享到:
评论

相关推荐

    基于Apache FtpServer 的Ftp服务器实现

    Apache FtpServer是一款开源的FTP服务器软件,它基于Java语言开发,可以轻松地与各种Java应用集成。在本场景中,我们重点讨论如何利用Apache FtpServer与Spring框架集成来搭建一个功能强大的FTP服务器。 首先,...

    Apache FtpServer配置详解

    从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 &lt;!--ftp端口 --&gt; &lt;!--绑定的服务器IP地址,多网卡的时候使用...

    apache FTPserver 安装包

    2. **可扩展性**:Apache FTPServer基于Mina网络应用框架,具有高度可扩展性。用户可以编写自定义模块来扩展其功能,如认证、授权、日志记录等。 3. **模块化设计**:服务器由多个模块组成,每个模块负责特定的功能...

    Apache Ftpserver 全套

    Apache Ftpserver是一款开源的FTP服务器软件,由Apache软件基金会维护。它提供了高度可配置性和模块化设计,使得用户可以根据需求定制自己的FTP服务环境。在本资料包中,你将获得Apache Ftpserver的全套资源,包括...

    apache ftpserver笔记

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...

    (转)Java使用Apache FtpServer实现嵌入式FTP服务器

    Java使用Apache FtpServer实现嵌入式FTP服务器是一项常见的任务,尤其在开发集成测试或部署自动化流程时。Apache FtpServer是一个开源项目,它提供了一个轻量级且可嵌入的FTP服务器,允许开发者在Java应用程序中直接...

    apache ftpserver Mysql配置

    Apache FTPServer是一款开源的FTP服务器,它允许...通过上述步骤,你将能够成功配置Apache FTPServer与Mysql的集成,实现基于数据库的用户管理和权限控制。这样的配置不仅便于管理大量用户,还能提供更高级的安全特性。

    apache ftpserver讲解

    例如,在 `%FTP_HOME%/common/lib/ftpserver-core-1.0.5.jar` 文件中找到相关类文件,如 `org.apache.ftpserver.usermanager.impl.DbUserManager.class` 和 `org.apache.ftpserver.usermanager.impl....

    Apache Ftp Server使用说明

    Apache Ftp Server是一款开源的FTP服务器软件,基于Java平台,由Apache软件基金会开发。它提供了高度可配置性和灵活性,使得用户可以根据自身需求定制FTP服务。本文将深入探讨Apache Ftp Server的使用方法,包括安装...

    Apache FtpServer 1.0.6

    Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...

    apache ftp server

    Apache FTP Server是一个开源的FTP服务器,它允许用户通过FTP协议上传、下载文件。这个服务器是用Java语言编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Unix等操作系统。Apache FTP Server的...

    apache ftpserver使用讲解

    - `org\apache\ftpserver\usermanager\impl\AbstractUserManager.class` 修改这些类的主要目的是让其支持新的表结构,并实现在验证过程中对源IP地址的检查。 通过以上步骤,我们可以有效地配置并使用Apache FTP...

    Apache FtpServer详细配置.zip

    Apache FtpServer是一款开源的FTP服务器,它基于Java平台,为用户提供了一种灵活且可扩展的方式来搭建和管理FTP服务。Apache FtpServer以其强大的功能、良好的稳定性和丰富的配置选项深受IT专业人士的喜爱。以下是对...

    apache ftpserver

    Apache FTPServer是一个开源的FTP服务器项目,它提供了一个强大、灵活且可扩展的平台来管理文件传输服务。这个服务器是基于Java实现的,因此具备跨平台性,可以在多种操作系统上运行,包括Windows、Linux和Mac OS等...

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...

    apache ftpserver jar包

    Apache FtpServer是一款开源的FTP服务器,它基于Java实现,提供了灵活且强大的配置方式,能够方便地集成到各种系统环境中,比如与Spring框架的整合。Apache FtpServer的核心设计目标是提供一个轻量级、高性能且易于...

    Apache FTPServer的配置与使用&API

    Apache FTPServer是一款开源的FTP服务器软件,它基于Java平台,提供了强大的可扩展性和高度的定制性。本篇文章将深入探讨Apache FTPServer的配置、使用以及API的详细操作,旨在帮助用户更好地理解和应用这款服务器。...

    apache-ftpserver-1.0.6

    Apache FTPServer是一个开源的FTP服务器项目,源自Apache MINA项目,提供了一种高效且可扩展的方式来实现FTP(文件传输协议)服务。这个"apache-ftpserver-1.0.6"版本是该软件的一个特定发布版,包含了在该版本中所...

    Apache Ftp Server与spring框架融合

    Apache Ftp Server是一款开源的FTP服务器,它允许开发者在Java环境中构建自己的FTP服务。与Spring框架的融合,使得我们可以利用Spring强大的依赖注入和配置管理能力,实现FTP服务器的灵活配置和无缝集成到现有的应用...

Global site tag (gtag.js) - Google Analytics