defaultftplet.java
来自「JAVA FTP 上传下载 的源文件」· Java 代码 · 共 342 行
JAVA
342 行
/* * 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. */package org.apache.ftpserver.ftplet;import java.io.IOException;/** * Default ftplet implementation. All the callback method returns null. It is * just an empty implementation. You can derive your ftplet implementation from * this class. * * @author The Apache MINA Project (dev@mina.apache.org) * @version $Rev: 719389 $, $Date: 2008-11-20 22:50:22 +0100 (Thu, 20 Nov 2008) $ */public class DefaultFtplet implements Ftplet { public void init(FtpletContext ftpletContext) throws FtpException { } public void destroy() { } public FtpletResult onConnect(FtpSession session) throws FtpException, IOException { return null; } public FtpletResult onDisconnect(FtpSession session) throws FtpException, IOException { return null; } public FtpletResult beforeCommand(FtpSession session, FtpRequest request) throws FtpException, IOException { String command = request.getCommand().toUpperCase(); if ("DELE".equals(command)) { return onDeleteStart(session, request); } else if ("STOR".equals(command)) { return onUploadStart(session, request); } else if ("RETR".equals(command)) { return onDownloadStart(session, request); } else if ("RMD".equals(command)) { return onRmdirStart(session, request); } else if ("MKD".equals(command)) { return onMkdirStart(session, request); } else if ("APPE".equals(command)) { return onAppendStart(session, request); } else if ("STOU".equals(command)) { return onUploadUniqueStart(session, request); } else if ("RNTO".equals(command)) { return onRenameStart(session, request); } else if ("SITE".equals(command)) { return onSite(session, request); } else { // TODO should we call a catch all? return null; } } public FtpletResult afterCommand(FtpSession session, FtpRequest request, FtpReply reply) throws FtpException, IOException { // the reply is ignored for these callbacks String command = request.getCommand().toUpperCase(); if ("PASS".equals(command)) { return onLogin(session, request); } else if ("DELE".equals(command)) { return onDeleteEnd(session, request); } else if ("STOR".equals(command)) { return onUploadEnd(session, request); } else if ("RETR".equals(command)) { return onDownloadEnd(session, request); } else if ("RMD".equals(command)) { return onRmdirEnd(session, request); } else if ("MKD".equals(command)) { return onMkdirEnd(session, request); } else if ("APPE".equals(command)) { return onAppendEnd(session, request); } else if ("STOU".equals(command)) { return onUploadUniqueEnd(session, request); } else if ("RNTO".equals(command)) { return onRenameEnd(session, request); } else { // TODO should we call a catch all? return null; } } /** * Override this method to intercept user logins * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onLogin(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept deletions * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onDeleteStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle deletions after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onDeleteEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept uploads * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onUploadStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle uploads after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onUploadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept downloads * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onDownloadStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle downloads after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onDownloadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept deletion of directories * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onRmdirStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle deletion of directories after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onRmdirEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept creation of directories * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onMkdirStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle creation of directories after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onMkdirEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept file appends * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onAppendStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept file appends after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onAppendEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept unique uploads * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onUploadUniqueStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle unique uploads after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onUploadUniqueEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept renames * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onRenameStart(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to handle renames after completion * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onRenameEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; } /** * Override this method to intercept SITE commands * @param session The current {@link FtpSession} * @param request The current {@link FtpRequest} * @return The action for the container to take * @throws FtpException * @throws IOException */ public FtpletResult onSite(FtpSession session, FtpRequest request) throws FtpException, IOException { return null; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?