`
xm_koma
  • 浏览: 384353 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

java开发中经常会用到ftp上传、下载指定ftp服务器的文件,这里整理一个通过apache的commons-net包访问ftp服务的工具类:

package utils;

import java.io.IOException;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;

/**
 * @description
 * @author minux
 */
public class FtpUtil {

	public static final Logger logger = Logger.getLogger(FtpUtil.class);

	private String hostIp;
	private int port;
	private String dir;
	private String userName;
	private String password;
	private static final String DIR_SEPARATOR = "/";
	private FTPClient ftpClient;

	public FtpUtil() {

	}

	public FtpUtil(String hostIp, int port, String dir, String userName,
			String password) {
		this.hostIp = hostIp;
		this.port = port;
		this.dir = dir;
		this.userName = userName;
		this.password = password;
	}

	/**
	 * 连接FTP-------尝试3次
	 * 
	 * @return
	 */
	public boolean getFtpConnection() {
		int count = 0;
		boolean isConnected = false;
		while (count < 3 && !(isConnected = connectFtp())) {
			count++;
			logger.info("After a second connection again.");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		return isConnected;
	}

	private boolean connectFtp() {
		try {
			ftpClient = new FTPClient();
			ftpClient.setDataTimeout(30000);
			ftpClient.setConnectTimeout(10000);
			ftpClient.connect(hostIp, port);
			if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
				logger.warn("connect to server [" + hostIp + "] fail. ");
				ftpClient.disconnect();
				return false;
			} else {
				logger.info("connect to server [" + hostIp + "] success.");
				return true;
			}
		} catch (SocketException e) {
			logger.error("ftpHost [" + hostIp
					+ "] is error, please give the correct ip: ", e);
			return false;
		} catch (IOException e) {
			logger.error("ftpPort [" + hostIp
					+ "] is error, please give the correct port: ", e);
			return false;
		}
	}

	/**
	 * 关闭FTP链接
	 */
	public void closeFtpConnection() {
		if (ftpClient.isConnected()) {
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				logger.error("close FTPClient error,", e);
			}
		}
	}
}

 

 

 

用到的第三方jar:

commons-net-3.3.jar

 

目前该jar的新版本,老版本(1.4.1)会出现乱码的问题,并且不能设置一些常规参数,比如connectionTimeout(连接超时)

 

 

分享到:
评论

相关推荐

    Android ftp 下载工具类

    本知识点主要集中在如何使用Java实现一个FTP下载工具类,以便在Android应用程序中集成这一功能。以下是对`DownloadFTPUtil.java`文件中可能包含的代码和相关知识点的详细解释。 1. **FTP客户端库**:在Android中,...

    android FTP下载工具类

    android 访问ftp服务器下载上传文件工具类。

    FTP扫描工具

    在网络安全领域,这类工具扮演着重要的角色,帮助系统管理员发现并修复FTP服务器的潜在漏洞和配置错误。下面将详细介绍FTP扫描工具的功能、工作原理以及相关知识点。 1. FTP扫描工具功能: - **端口扫描**:自动...

    绿色ftp服务器工具

    这类工具通常包含所有必要的组件,用户只需解压到任意目录即可启动服务,方便快捷,不留下任何系统痕迹,易于管理和迁移。 FTP服务器的主要功能是提供文件共享,允许远程用户上传、下载文件。对于个人用户,它可能...

    最小的ftp工具

    "最小的ftp工具"通常指的是占用系统资源少、体积小巧但功能齐全的FTP客户端软件,这类工具适合那些对系统性能有较高要求或者需要快速便捷进行文件传输的用户。 FTP工具有许多特性,包括但不限于以下几点: 1. **...

    FTP扫描工具挂链专用

    这类工具通过自动化的方式,帮助用户查找可能存在漏洞或弱口令的FTP服务器,从而提高网络安全。 FTP扫描工具的工作原理通常是通过输入指定的关键字或者一系列可能的用户名和密码组合,对目标FTP服务器进行尝试性...

    绿色版FTP管理工具

    FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。绿色版FTP管理工具,如标题所示,是指无需...通过熟练掌握这类工具的使用,用户能够高效地管理和维护FTP服务器,提高工作效率。

    最新版密探FTP扫描工具(7月2号更新版)

    3. **漏洞检测**:该工具能够识别FTP服务器的潜在安全问题,如弱口令、未授权访问、过时的FTP服务版本等,这些都可能成为黑客攻击的入口。 4. **报告生成**:扫描完成后,工具会生成详细的报告,列出所有扫描到的...

    Ftp上传PHP类

    总结来说,"Ftp上传PHP类"是一个PHP开发工具,它为FTP文件传输提供了一种便捷的编程接口。通过这个类,开发者可以在PHP应用中轻松地实现文件的上传功能,同时配合示例和配置文件,可以快速理解和集成到自己的项目中...

    最简单方便小巧的FTP工具

    3. 灵活的权限管理:用户可能需要控制不同用户对FTP服务器的访问权限,好的FTP工具应支持创建多个用户账号,并能分别设定读取、写入和执行权限。 4. 安全性考虑:虽然“小巧”和“简单”是其特点,但安全不应被忽视...

    Android FTP 服务端工具

    标题中的“Android FTP 服务端工具”指的是在Android设备上实现FTP服务器功能的应用程序,它允许用户通过FTP协议上传、下载文件到或从Android设备。这样的工具通常对开发者或者需要远程管理Android设备文件的用户...

    Android FTP上传下载工具

    - **Socket编程**:FTP通信依赖于TCP/IP协议,开发者需要熟悉如何使用Java的Socket类进行网络通信。 - **多线程处理**:为了确保用户界面的响应性,文件传输通常在后台线程中执行,使用AsyncTask或其他并发模型。 ...

    C#编写的FTP操作类

    总结来说,C#编写的FTP操作类是实现FTP交互的强大工具,它封装了建立连接、文件传输、目录操作等各种功能,使得开发者能够轻松地在C#应用程序中集成FTP功能。通过理解和利用此类,开发者可以构建出功能完备且易于...

    Java常用工具类.zip

    6. **FTP传输工具类**:FTP(文件传输协议)用于在网络上进行文件传输。Java的`java.net.Socket`和`java.io`包可以实现FTP的基本功能,但更常见的是使用第三方库如Apache Commons Net,它提供了`FTPClient`类,方便...

    http、https、gzip、ftp、fasdDFS工具类

    在IT行业中,网络通信是至关重要的,而http、https、gzip、ftp以及fasdDFS都是在这一领域中常见的工具和协议。接下来,我们将详细探讨这些技术及其应用。 首先,HTTP(超文本传输协议)是最基本的互联网通信协议,...

    网站ftp上传工具

    这类工具通常具有用户友好的界面,简化了文件的上传和下载过程,无需深入了解FTP命令行操作。FTP工具提供了多种功能,如多文件同时传输、断点续传、文件预览、文件编辑以及目录同步等。 描述中提到的“网站ftp上传...

    FTP密码修改工具FTP密码修改工具

    这类工具通常用于管理员维护FTP服务器安全,确保只有授权的用户能访问和管理服务器上的文件。 FTP服务器是运行在特定计算机上的一种服务程序,它允许远程用户连接并执行文件操作,如上传、下载、删除或移动文件。...

    最小的FTP工具

    "最小的FTP工具"可能强调的是其小巧的体积、快速的启动速度以及简洁的操作界面,对于不常使用FTP服务或对复杂功能需求不高的用户来说,这类工具非常实用。例如,FtpServer.exe很可能就是这样一个小型FTP服务器程序,...

    ftp网络映射工具软件

    FTP网络映射工具软件使得用户能够方便地访问远程服务器上的文件,如同访问本地计算机一样。这类工具通常具备用户友好的界面,简化了文件上传、下载以及管理的过程。 FTP工具的功能包括: 1. **登录和身份验证**:...

    ftp 创建工具

    标题提到的“FTP创建工具”显然就是这类软件,它简化了FTP服务器的配置过程,使得非专业IT人士也能轻松管理文件共享。 FTP服务的搭建通常涉及到以下几个关键知识点: 1. **FTP服务器软件**:FTP创建工具可能包含了...

Global site tag (gtag.js) - Google Analytics