文档章节

FTP工具类

HdPang
 HdPang
发布于 2016/08/09 14:08
字数 192
阅读 8
收藏 0
点赞 0
评论 0

封装的最基本的ftp常用操作

import java.io.IOError;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.net.ftp.FTPException;
import com.enterprisedt.net.ftp.FTPTransferType;


public class IdealFtpClient {
	private FTPClient ftpClient = null;
	
	public void connectServer(String server, String user, String password){
		if(ftpClient == null || !ftpClient.connected()){
			ftpClient = new FTPClient();
			try{
				ftpClient.setRemoteHost(server);
				ftpClient.setTimeout(3000);
//				ftpClient.setControlEncoding("gbk");
				ftpClient.connect();
				ftpClient.login(user, password);
				ftpClient.setConnectMode(FTPConnectMode.PASV); 
				ftpClient.setType(FTPTransferType.BINARY); 
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}

	public void changeDir(String path){
		if(path == null || path.equals("")){
			return;
		}
		String temp[] = path.split("/");
		for(int i=0;i<temp.length;i++){
			try{
				if(temp[i] == null || temp[i].equals("")){
					continue;
				}
				ftpClient.chdir(temp[i]);
			}catch(FTPException fe){
				try{
					ftpClient.mkdir(temp[i]);
					ftpClient.chdir(temp[i]);
				}catch(Exception e){
					
				}
			}catch(Exception ee){
				
			}
		}
	}

	public void uploadFile(InputStream in,String filename){
		try{
			ftpClient.put(in, filename);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void uploadFile(byte[] bytes, String filename){
		try{
			ftpClient.put(bytes, filename);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void downLoad(OutputStream out ,String filename){
		  try{
			  ftpClient.get(out, filename);
		  }catch(Exception e){
			  e.printStackTrace();
		  }
	}

	public void close(){
		try{
			if(ftpClient != null && ftpClient.connected()){
				ftpClient.quit();
				ftpClient = null;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void makeDirectory(String dir) throws FTPException, IOException{
		ftpClient.mkdir(dir);
	}
}

© 著作权归作者所有

共有 人打赏支持
HdPang
粉丝 0
博文 5
码字总数 1581
作品 0
浦东
程序员
高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

前言 最近在项目中需要和ftp服务器进行交互,在网上找了一下关于ftp上传下载的工具类,大致有两种。   第一种是单例模式的类。   第二种是另外定义一个Service,直接通过Service来实现f...

宇的季节 ⋅ 2017/12/07 ⋅ 0

Springmvc文件上传

文件上传 一、Springmvc文件上传到ftp服务器 FileServiceImpl: FTPUtil: 上传到ftp服务器的一些配置信息hcxmall.properties: 读取properties文件的工具类: 调用: 二、富文本文件上传 富文...

JS_HCX ⋅ 2017/11/22 ⋅ 0

用commons-net包写Ftp客户端下载(二)

上次写完了工具类,那么然后就是另一个工具类了。 1.也就是对ftp上文件的遍历。 这里我发现了一个问题,下载文件的时候,每次都得重新连接,也就是一次连接只能下载一个文件。 虽然到最后我也...

猴子 ⋅ 2011/10/20 ⋅ 0

使用C#客户端访问FTP服务的一个解决方案

一、写在前面 最近工作中遇到了一个场景,要用C#客户端访问FTP服务器,并实现文件下载功能。之前我使用了一种非常简单粗暴的方法,因为客户端之前就用到了Xilium.CefGlue(可以理解为一个Web...

北风其凉 ⋅ 2016/07/20 ⋅ 0

用commons-net包写Ftp客户端下载(一)

由于需要客户需求,需要把Ftp上的所有文件下载到本地,包括目录和文件。看到文件数量的时候我就哭了。。 几万个文件,晕死。这个地方我遇到的几个困难我会一一说明。 下载commons-net包我就不...

猴子 ⋅ 2011/10/20 ⋅ 1

python写一个日志查询工具(登录ftp服务器得到日志并分析)

这两天比较闲,于是又捡起之前学了一点的python。也不知道用python做一个什么东西,但是如果不做个小工具,那python学了也是会很快就忘掉的。这时,突然想起来之前做的一个网站,里面有一些日...

jiangmitiao ⋅ 2015/12/02 ⋅ 0

推荐 Web 开发人员应有的免费 Android 应用

作为一个 Web 开发人员,有时候也需要关注一下你的网站在移动设备上的表现,或者需要通过移动设备来管理网站。下面为你推荐 7 款免费的 Android 应用,有助于你更好的工作。 1. Firefox 4 B...

红薯 ⋅ 2011/05/06 ⋅ 2

centos自动打包并布署项目

网上下载ftp工具类PLINK.EXE和PSFTP.EXE 编写bat脚本如下 编写ftp.txt如下 编写install.txt如下

chaun ⋅ 2015/04/24 ⋅ 0

Apache ftp client 上传进度跟踪

项目中用到ftp上传数据,用apache ftp client写了一个工具类。默认的ftpclient storefile是不能设置跟踪进度的。这里用了另外一个api,做了一个简单的包装。 import java.io.File;import jav...

nile ⋅ 2010/09/21 ⋅ 1

ftplib的使用

工具主要是远程批量的执行对文件的上传,删除和重命名 代码比较简单,都是常用的方法使用,首先创建一个类 class ftpInterface: def init(self, host = '', port = 21, user = '', pwd = ''...

neverGG ⋅ 2016/02/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL主从复制原理、半同步操作步骤及原理

1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。...

xiaomin0322 ⋅ 21分钟前 ⋅ 0

Oracle10g 数据及文件迁移过程[原]

QL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 11 10:22:35 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Re......

harrypotter ⋅ 27分钟前 ⋅ 0

nginx安装

1:安装工具包 wget、vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包 wget http://nginx.org/download/nginx-1......

壹丶贰 ⋅ 30分钟前 ⋅ 0

ideaVim安装及配置

1.安装插件 File-Settings-Plugins,Browse Repositories,输入ideavim,安装。 重启后,在Tools-Vim Emulator启用。 2.快捷键设置 ideaViim键与idea快捷键有冲突,可以在Settings-Other Se...

Funcy1122 ⋅ 34分钟前 ⋅ 0

MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B...

浮躁的码农 ⋅ 49分钟前 ⋅ 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 53分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 今天 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 今天 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部