`
xm_koma
  • 浏览: 381496 次
  • 性别: 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下载工具类

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

    JAVA FTP图片服务器的工具类和所需jar包

    JAVA 搭建FTP图片服务器的方法 服务器搭建方法在类注释里面 文件包括:JAVA端用于访问FTP服务器的方法不需要本地存储图片。文件附带2个所需jar包-commons-net.jar org.springframework.web.jar

    FTPClient开发工具类及使用示例

    FTPClient开发工具类及FTPClient访问文件的部分使用示例

    FtpUtil工具类

    淘淘商城FtpUtil工具类 , 使用java代码访问ftp服务器 使用apache的FTPClient工具访问ftp服务器

    匿名 ftp 下载

    这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。 在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为...

    xlight ftp服务器

    xferlog的支持 - 支持UNIX下FTP文件传输xferlog格式的日志,能够直接被如AWStats之类的流量统计工具使用。 MODE Z 支持 - 支持数据传输的实时压缩。 反盗链保护功能 - FTP服务器能够提供反盗链保护功能。

    FtpUtils.java

    ftp服务上传下载工具类,FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP...

    MyHelper-master-C#工具类含API文档

    01.程序配置管理辅助类 MyAppConfigHelper.cs 02.实现各种转换的操作辅助类 MyConvertHelper.cs 03.DataReader的辅助类 MyDataReaderHelper.cs 04.DataTable操作辅助类 ...18.FTP操作类辅助类 MyFtpHelper

    FTP方式和http方式下载 FTP服务器apk进行安装

    //初始化和FTP服务器交互的类 // 第一种方式是 FTP方式下载 需要填写host 端口号 账号 和密码 进行链接服务器 // InitFTPServerSetting(); // 第一种方式是 通过访问公网 http 获取html 解析其中的a标签 然后 拼接...

    搜易宽带FTP服务器(adslwebserver) v1.3

    建立自己的海量空间FTP文件服务器工具。只要你能连上互联网,获得独立的IP地址,就可以把你的普通PC机作为一台ftp服务器,向全世界开通属于自己的零费用FTP服务站。如果你是拨号上网,因为流量限制会使访问的人感觉...

    辉煌互联 v1.0

    这是一个小巧灵活的FTP服务器工具,占用系统资源少。可快速建立小型的FTP服务器,可以方便应用局域网内用户互相传送文件,不用再为如何另外安装FTP服务器上浪费脑筋。 功能说明:1、建立便捷FTP服务器。2、用于局域网...

    系统远程管理工具,包含命令行、FTP、进程管理、监控功能,基于通用访问SDK开发.zip

    C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术...

    win7下创建个人FTP站点的教程

    ​FTP就是一个存放文件的地方,用户通过互联网可以访问FTP,下载和上传文件。有时候我们个人也会用到FTP来共享文件,但是个人FTP站点要怎么做呢?下面是具体的方法: 方法/步骤 点击开始按钮,打开开始菜单,在开始...

    公共上传下载程序和页面,相当于FTP的功能

    写的一个小工具类,可以把我们需要的东西上传上去,别人可以访问,也可以下载。访问地址 ip+8083 。如果我们需要删除的话,可以直接在服务器上面 上传的路径下,删除上传的文件即可。

    C++网络工具包 POCO C++ Libraries

    它用以开发基于网络的可移植的应用程序,功能涉及线程、线程同步、文件系统访问、流操作、共享库和类加载、套接字以及网络协议包括:HTTP、FTP、SMTP 等;其本身还包含一个 HTTP 服务器,提供 XML 的解析和 SQL ...

    查看IE的cookies工具

    IE浏览器cookers查看器,浏览器记录查看,按时间顺序显示上网记录,也可以分类显示上网记录,如HTTP访问、FTP访问、本地文件访问等,上网浏览记录一目了然

    诺顿清理工具

    可以添加2级分类,前台页面可以访问用户可以切换自动播放,并设定时间。 6.添加多媒体文件 支持音乐,视频,FLASH播放,音乐可以添加歌词,并可以设置首页自动播放的音乐。可直接填写网址链接,如果文件太大建议先...

    IIS6.0 IIS,互联网信息服务

    除了匿名访问用户(Anonymous)外,IIS中的FTP将使用Windows 2000自带的用户库(可在“开始→程序→管理工具→计算机管理”中找到“用户”一项来进行用户库的管理)。 最后,关键一步还有就是将你的电脑变为网络中的...

    C#基类库大全下载--苏飞版

    2.Api_Win32_Mac类工具包 一个Win32的Api包,实现了大部分的Api操作帮助方法 3.在c#程序中放音乐的帮助类 使用C#播放音乐的帮助类,只需要调用方法就可以放音乐了 GDI+相关,图像相关1.生成缩略图的类文件Small...

    免费的 FileZilla 中文版

    现在市面上有很多 FTP 类的软件,也给大家分享过开源免费的 FileZilla 中文版,收费的 FlashFXP 中文版等等。而今天给大家分享另一款国外的 FTPGetter Professional 中文版。FTPGetter Professional 它可以节省 FTP/...

Global site tag (gtag.js) - Google Analytics