`

Ftp上传与下载

阅读更多

*、在实际的项目开发中有这样一个需求,为了进行保密操作,在外置的服务器上搭建一个FTP服务端,然后内在的保密服务器上对该服务器进行ftp方式的主动数据抓取操作,and so on~

 

----欢迎拍砖,欢迎大家不吝赐教---

(~ ̄▽ ̄)~

 

*、登录(参数简单的封装了一下)

public static FTPClient getFtpConn(JBConfig jbConfig) {
	if(!ftpClient.isConnected()) {
		String remoteIP = "";
		String userName = "";
		String userPwd = "";
		try {
			remoteIP = jbConfig.getRemoteIP();
			userName = jbConfig.getUserName();
			userPwd = jbConfig.getUserPwd();
			ftpClient.connect(remoteIP);
			boolean f = ftpClient.login(userName , userPwd);
			if(f) {
				logger.warn("IP:"+remoteIP+",用户名:"+userName+"的数据库连接成功!");
			}
		}catch(IOException e) {
			logger.warn("IP:"+remoteIP+",用户名:"+userName+"的数据库连接失败!"+e);
		}
	}
	return ftpClient;
}

 

*、下载(内部工具函数自己随意写哈,O(∩_∩)O哈哈~)

/**
 * FTP下载单个文件测试
 * @param remoteFileName 远程环境的绝对路径
 * @param aimDir 本地下载后的文件所在的根目录
 */
public static String ftpDownFile(JBConfig jbConfig , String remoteFileName , String aimDir) {
	getFtpConn(jbConfig);
	FileOutputStream fos = null;
	String fileName = "";//远程文件的文件名称
	String localFileName = "";//本地要下载的文件位置
	if(!FileTool.isExist(aimDir)) {
		System.exit(0);//目录文件创建失败就退出!
	}
	try {
		fileName = FileTool.getFileName(remoteFileName);//得到远程文件的文件名
		if(aimDir.contains("/")) {
			localFileName = aimDir+"/"+fileName;
		}else if(aimDir.contains("\\")) {
			localFileName = aimDir+"\\"+fileName;
		}
		logger.warn("文件名提取结果是:"+fileName);
		logger.warn("下载到本地的目录地址路径是:"+localFileName);
		
		fos = new FileOutputStream(localFileName);
		
		ftpClient.setBufferSize(1024);
		ftpClient.setControlEncoding("UTF-8"); 
		//设置文件类型(二进制)
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
		logger.warn(remoteFileName+":下载中!!!");
		ftpClient.enterLocalPassiveMode();//关键点
		boolean b = ftpClient.retrieveFile(new String(remoteFileName.getBytes("UTF-8"),"ISO-8859-1"), fos);//解决中文路径的问题
		if(b) {
			logger.warn(remoteFileName+":下载成功!!!");
		}else {
			logger.warn(remoteFileName+":下载失败!!!");
			return null;
		}
	} catch (IOException e) {
		logger.warn("下载时FTP客户端出错!"+e);
	} finally {
		IOUtils.closeQuietly(fos);
		try {
			ftpClient.disconnect();
		} catch (IOException e) {
			logger.warn("下载时关闭FTP连接发生异常!"+e);
		}
	}
	return localFileName;
} 

 

*、上传

/**
 * FTP上传单个文件
 */
public static boolean ftpUpFile(JBConfig jbConfig , String localFileName , String aimfileName) {
	getFtpConn(jbConfig);
	FileInputStream fis = null;
	try {
		//本地文件路径
		File srcFile = new File(localFileName);
		fis = new FileInputStream(srcFile);
		//设置上传目录
		ftpClient.setBufferSize(1024);
		ftpClient.setControlEncoding("UTF-8");
		//设置文件类型(二进制)
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
		logger.warn(localFileName+":上传中!!!");
		ftpClient.enterLocalPassiveMode();
		boolean b = ftpClient.storeFile(aimfileName, fis);
		if(b) {
			logger.warn(localFileName+":上传成功!!!");
		}else {
			logger.warn(localFileName+":上传失败!!!");
		}
	} catch (IOException e) {
		logger.warn("上传时FTP客户端出错!"+e);
		return false;
	} finally {
		IOUtils.closeQuietly(fis);
		try {
			ftpClient.disconnect();
		} catch (IOException e) {
			logger.warn("上传时关闭FTP连接发生异常!"+e);
		}
	}
	return true;
}

 

分享到:
评论

相关推荐

    FTP上传与下载程序PB

    在这个"FTP上传与下载程序PB"的案例中,我们将会探讨如何使用PowerBuilder来实现FTP功能,包括文件的上传和下载,以及可能涉及的自动升级机制。 首先,理解FTP的基本概念至关重要。FTP允许用户在两台计算机之间交换...

    FTP上传与下载

    FTP上传文件或者FTP下载文件,自测 成功

    FTP上传与下载pb9.0code

    标题“FTP上传与下载pb9.0code”指的是使用PowerBuilder 9.0(简称PB9)开发的一个程序,该程序实现了FTP(File Transfer Protocol)的上传和下载功能。PowerBuilder是一款强大的可视化编程工具,特别适合于构建...

    FTP上传与下载源码(Pb9)

    在Pb9中实现FTP上传与下载功能,可以帮助用户实现本地计算机与远程服务器之间的文件交换。 FTP上传是指将本地计算机的文件发送到远程FTP服务器的过程,这通常涉及到以下关键步骤: 1. **连接**:通过FTP客户端程序...

    PB9 FTP上传与下载实例

    PB9 FTP上传与下载实例是基于PowerBuilder 9(PB9)开发的一种应用程序功能,它利用seinweb.dll组件来实现在FTP(File Transfer Protocol)服务器上进行文件的上传和下载操作。FTP是一种广泛用于互联网上的协议,...

    PowerBuilder9.0语言实现FTP上传与下载

    《PowerBuilder 9.0 实现FTP上传与下载详解》 在信息技术领域,尤其是在软件开发中,数据交换和资源共享是常见的需求。对于采用PowerBuilder 9.0作为开发工具的项目,如何实现在受限环境中通过FTP(文件传输协议)...

    完整实现ftp上传与下载并解析csv文件

    FTP上传涉及到`storeFile()`方法,而下载则使用`retrieveFile()`。 2. CSV文件解析: CSV(Comma Separated Values)文件是一种常见的数据交换格式,通常用于导入和导出表格数据。Java中,可以使用OpenCSV或者...

    ftp上传与 下载

    在FTP上传与下载的过程中,有几个关键概念需要理解: 1. **FTP客户端**:这是用户用来连接到FTP服务器的软件,例如FileZilla、WinSCP等。客户端提供了图形化的界面,使用户能够浏览服务器目录,上传、下载文件,并...

    FTP上传与下载.rar

    标题"FTP上传与下载.rar"暗示了这个压缩包包含了使用PowerBuilder进行FTP传输的示例和教程。 PowerBuilder是一款强大的Windows应用程序开发工具,它支持多种数据库和接口技术。在12.6版本中,PowerBuilder提供了更...

    PowerBuilder FTP上传与下载

    在标题"PowerBuilder FTP上传与下载"中,我们关注的是如何利用PowerBuilder实现文件的FTP(File Transfer Protocol)传输,即上传和下载操作。FTP是一种标准网络协议,用于在计算机之间交换文件,尤其适用于在互联网...

    FTP上传与下载源码

    以下是对FTP上传与下载源码相关知识点的详细说明: 一、FTP基本概念: 1. FTP服务器:提供文件存储服务,接收客户端的连接请求,处理文件传输。 2. FTP客户端:用户或应用程序用来与服务器交互,执行文件上传和下载...

    Java实现FTP上传与下载

    这篇博客“Java实现FTP上传与下载”可能详细介绍了如何利用Java来实现FTP客户端的功能,包括文件的上传和下载。这里我们将深入探讨Java中实现FTP操作的核心知识点。 首先,Java通过`commons-net`库提供了对FTP的...

    Ftp 上传与下载 完整版

    Ftp 上传与下载

    真正完整的FTP上传与下载代码

    在这个“真正完整的FTP上传与下载代码”中,我们很显然会涉及到使用PowerBuilder 9(PB9)开发的FTP客户端应用程序。PB9是Sybase公司的一款可视化编程工具,尤其适合创建数据驱动的应用程序。 FTP上传是指将本地...

    FTP上传与下载软件

    这个压缩包文件中的"FTP上传与下载软件"是基于Eclipse集成开发环境构建的,旨在提供一个用户友好的界面来实现FTP的文件上传和下载功能。Eclipse是一个强大的开源Java集成开发环境,它支持各种插件和扩展,使得开发...

    一款FTP上传与下载工具

    这款FTP上传与下载工具,显然是为了方便用户高效、便捷地管理他们的文件传输需求而设计的。以下将详细介绍FTP的相关知识以及这款工具可能具备的功能。 FTP协议自1971年首次被提出,是Internet上最早的服务之一。它...

    我的ftp上传与下载

    在提供的文件列表中,有两份MHT文件,可能包含了使用Java实现FTP上传下载的示例代码或问题解答。MHT文件是一种单个文件的Web页面存档格式,可以使用浏览器或特定的阅读器打开查看详细内容。 总的来说,FTP上传与...

    FTP上传与下载源码Pb9

    在这个“FTP上传与下载源码Pb9”的项目中,我们将深入探讨如何在PB9环境下利用FTP协议实现文件的上传和下载。 FTP上传是将本地计算机上的文件发送到远程服务器的过程,而FTP下载则是从远程服务器获取文件并保存到...

Global site tag (gtag.js) - Google Analytics