*、在实际的项目开发中有这样一个需求,为了进行保密操作,在外置的服务器上搭建一个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; }
相关推荐
一个PB开发的FTP上传与下载案例,绝对原创哦,自动升级程序
FTP上传文件或者FTP下载文件,自测 成功
完整实现ftp上传与下载并解析csv文件,并实现对文件内容进行分析及错误信息的提示及保存日志,并可以实现多个文件同时下载,并且同时解析
FTP上传与下载源码(Pb9) FTP上传与下载源码(Pb9) FTP上传与下载源码(Pb9) FTP上传与下载源码(Pb9)
Ftp 上传与下载
通过seinweb.dll这个组件实现简单ftp上传与下载文件 该实例是PB9开发的。
FTP上传与下载源码FTP上传与下载源码
FTP上传与下载实例 FTP上传与下载实例
VB.NET FTP上传与下载源码 详细介绍了上传与下载,代码简洁
Eclipse集成环境开发的FTP上传与下载软件。压缩包内有完整的代码和包,并附有FTP上传与下载使用说明书。方便学习者使用。
以前下载的FTP上传与下载pb9.0code 我自己用过,感觉可以
我的ftp上传与下载
ftp上传与下载源码,适用于POWERBUILDER 9.0
关于FTP上传与下载的资料,内附有两个例子代码(VC),还有自己网上搜到的一些文档资料
真正完整的FTP上传与下载代码,PB9开发,打开即可用,可直接运行测试,使用稳定。
简单的实现了单个文件的上传与下载,内附使用方法
java中ftp上传与下载