FTPClient的使用(一) 登录和退出

两种登录方式如下,一种是域名登录,一种是IP方式登录,两种都可以,如果要连接多个ftp的话。链接信息域名、IP、登录名和密码,可以存在数据库中 需要登录的时候直接传到这个方法中就可以啦,如果只用链接一个ftp则可以在资源文件配置链接信息,这种方法可以看我其他的博文《@value()注解的使用》里边有关于资源文件的引用方法,

类开始的时候定义了全局变量

private static FTPClient ftpClient = new FTPClient();

下面是两种登录方法:


public FTPClient loginFtp(Map params) {

        try {
            String domain = (String) params.get("domainName");//
域名方式登录多个域名可以存在表里,登录FTP时放在参数里传入
            String userName = (String) params.get("userName");
            String pw = (String) params.get("pw");
            if (null != domain && !domain.isEmpty()) {//如果通过域名登陆则通过此方法,如果通过IP,port登陆则添加到else方法中
                ftpClient .connect(domain);
                ftpClient .setControlEncoding("GBK");
                FTPClientConfig ftpConfig = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
                ftpConfig.setServerLanguageCode("zh");
                ftpClient .login(userName, pw);
                int reply = 0;
                reply = ftpClient .getReplyCode();
                System.out.println(reply);
                if (FTPReply.isPositiveCompletion(reply)) {
                    System.out.println("域名方式登录成功!
                    logger.debug("域名方式登录成功!");
                } else {
                    System.out.println("域名方式登录失败!");
                    logger.error("域名方式登录失败!远程FTP登陆失败。");
                    throw new BusinessException("远程FTP登陆失败,请重新审核");
                }
            }
else {
                ftpClient .connect(ip, port);
//此处的IP,端口等都是资源文件中配置的,类代码中直接用@value注入的
                ftpClient .setControlEncoding("GBK");
                FTPClientConfig ftpConfig = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
                ftpConfig.setServerLanguageCode("zh");
                ftpClient .login(username, password);
                int reply = 0;
                reply = ftpClient.getReplyCode();
                System.out.println(reply);
                if (FTPReply.isPositiveCompletion(reply)) {
                    System.out.println("IP端口方式登录成功!");
                    logger.debug("IP端口方式登录成功!");
                } else {
                    System.out.println("IP端口方式登录失败!");
                    logger.error("IP端口方式登录失败!本地FTP登陆失败");
                    throw new BusinessException("本地FTP登陆失败");
                }
            }

        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return ftpClient;

    }

退出:

    /**
     * @param ftpc :退出FTP登录
     * @return boolean :是否已经关闭连接
     * @throws IOException
     */
    public static boolean closeConnections(FTPClient ftpc) throws IOException {
        boolean bool = false;
        bool = ftpc.logout();
        return bool;
    }




你可能感兴趣的:(后台工具类)