`
v5qqbrowser
  • 浏览: 356888 次
文章分类
社区版块
存档分类
最新评论

apache ftpserver中可以返回的信息

 
阅读更多

http://mina.apache.org/ftpserver/的框架可以很方便的建立一个ftp服务器。建立的方法和配置文件网上很多文章都有讲,也可以参考官网的document。

我就讲一下别人没讲的返回信息。

当客户端连到服务器进行上传下载的时候,服务器可以返回哪些信息呢?咱们就来研究一下这个吧。

一、extends DefaultFtplet

在DefaultFtplet中提供了很多方法接口,用于在客户端连接、断开、上传下载时返回信息。具体的列表参考http://mina.apache.org/ftpserver/ftplet.html

我们先override其中的method.

先写一个类public static class MyFtplet extends DefaultFtplet {}

然后点击eclipse中的source-override/implement method。eclipse会把可以override的method全部列出来。

我们选择onConnect,onLogin,onUpLoadEnd,onDisconnect这四个基本的方法。勾选完之后点击“OK ",这些方法就自动override好了。

二、session

override之后的方法里面有一个参数是FtpSession session。下面看看这个参数中的一些常用功能。

session.getConnectionTime()

获取用户连接的时间

session.getFileSystemView()

获取当前服务器的文件结构,返回类型为FtpFile

session.getFileSystemView().getHomeDirectory()

获取服务器根目录路径,返回类型为FtpFile

session.getFileSystemView().getWorkingDirectory()

获取用户当前连接的目录路径,返回类型为FtpFile

session.getFileSystemView().getWorkingDirectory().getName()

获取用户当前连接的目录名字,返回类型为String

session.getFileSystemView().getWorkingDirectory().getAbsolutePath()

获取用户当前连接的目录的完整路径名字,返回类型为String(返回之后最后是没有斜杠的)。用这个可以获取用户文件的存放路径。

session.getLoginTime()

获取用户登录时间(这和连接时间是不同的概念)

三、request

方法中的另一个参数FtpRequest request

request.getArgument()

获取用户提交的命令中的参数,比如存储命令,这个参数就是文件名

request.getCommand()

获取用户提交的命令中的命令。比如存储的命令是"STOR"

request.getRequestLine()

获取用户提交的命令中的命令+参数

四、返回一个用户上传文件的完整路径

把当前路径和文件名加起来,就是完整的路径了。用这个路径也可以返回File型的文件。(filepath和file需要先定义)

		   public FtpletResult onUploadEnd(FtpSession session, FtpRequest request)
		     throws FtpException, IOException {
		    System.out.println("transport complete");
		    //获取当前路径
		    String path = session.getFileSystemView().getWorkingDirectory().getAbsolutePath();
		    //获取上传的文件名(服务器文件名和客户端文件名相同)
		    String filename = request.getArgument();
		    filepath = path+"/"+filename;
		    file = new File(filepath);
		    //返回上传文件的路径及文件名
		    System.out.println(filepath);
		    return super.onUploadEnd(session, request);
		   }


五、ftpserver需要导入的jar包

ftpserver-core-1.0.6.jar

mina-core-2.0.4.jar

ftplet-api-1.0.6.jar

以上jar包都在上面官网下载的文件中。

分享到:
评论

相关推荐

    Apache FtpServer 1.0.6

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

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡

    使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求: 1、 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。 2、 为系统设定 Session 超时时间,包括 Apache 和 tomcat 3...

    Apache JMeter

     在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册,在上传过程中可以将一张图片定义为自己的签名,在个人管理页面中注册用户还可以修改自己的个人信息。博文管理,友情链接管理及博文分类管理,用例图...

    Linux操作系统基础教程

    清华大学信息学院计算机系 目 录 前言..................................................................................................................................................2 第一讲 ...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用字符串构建器追加字符 100 实例081 去掉字符串中的所有空格 101 实例082 ...

    hadoop中文文档

     写链:存储爬行结果,返回内容和抽取特性,过滤完存储。  提交链:做最后的维护,例如,测试那些不在范围内的,提交给边界部件 1. Pre fetch Chain 预处理链。 1.1 precondition ...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JMeter操作手册大全.docx

    它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析...

    asp.net知识库

    在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和...

Global site tag (gtag.js) - Google Analytics