apphe fps erverから返せる情報

2798 ワード

http://mina.apache.org/ftpserver/のフレームワークは、簡単にftpサーバを構築することができる.設立の方法と配置ファイルはネット上で多くの文章に説明されています.公式サイトのdocumentを参考にしてもいいです.
他の人が言っていないリターン情報について話します.
クライアントがサーバに接続してアップロードしてダウンロードすると、サーバーはどのような情報を返すことができますか?これを検討しましょう.
一、extends DefaultFtplet
DefaultFtpletには、クライアント接続、切断、アップロードダウンロード時に情報を返すための多くの方法インターフェースが提供されている.具体的なリストはhttp://mina.apache.org/ftpserver/ftplet.htmlを参照してください.
まずoverrideの中のmethodです.
まず、クラスpublic static class MyFtplet extens DefaultFtpletを書きます.
そして、eclipseのsource-override/implement methodをクリックします.eclipseはoverrideのmethodを全部並べます.
私たちはonConnect、onLogin、onUp LoadEnd、onDisconnectの四つの基本的な方法を選択します.チェックしてから「OK」をクリックすると、これらの方法は自動的にoverrideがいいです.
二、セッション
override以降の方法にはFtpSessionというパラメータがあります.このパラメータのいくつかの一般的な機能を見てみます.
session.get Connection Time()
ユーザ接続の時間を取得する
session.get FileSystem View()
現在のサーバのファイル構造を取得し、戻るタイプはFtpFileです.
session.get FileSystem View().get Home Directory()
サーバルートディレクトリのパスを取得し、戻るタイプはFtpFileです.
session.get FileSystem View().getWorking Directory()
ユーザが現在接続しているディレクトリパスを取得し、戻りタイプはFtpFileです.
session.get FileSystem View().getWorking Directory().get Name()
ユーザが現在接続しているディレクトリ名を取得し、復帰タイプはSteringです.
session.get FileSystem View().getWorking Directory().getAbsolute Path()
ユーザが接続しているディレクトリのフルパス名を取得して、リターンタイプはSteringです.これでユーザファイルの保存経路を取得できます.
session.get Loging Time()
ユーザ登録時間の取得(これは接続時間とは異なる概念)
三、レクサス
メソッドの別のパラメータFtpRequest request
request.getAgment()
ユーザが提示したコマンドのパラメータを取得します.たとえば、コマンドを格納します.このパラメータはファイル名です.
request.get Command()
ユーザが提示したコマンドの中のコマンドを取得します.たとえば、格納されているコマンドは「STOR」です.
request.get Request Line()
ユーザが提示したコマンドのコマンド+パラメータを取得します.
四、ユーザーがファイルをアップロードするフルパスを返します.
現在のパスとファイル名を合わせたら、完全なパスです.このパスで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);
		   }
五、ftpsperverは導入するjarカバンが必要です.
fterver-coree-1.0.6.jar
mina-core-2.7.4.jar
ftplete-appi-1.0.6.jar
以上のjarカバンは上の公式サイトでダウンロードしたファイルの中にあります.