Ftp客户端上传、下载操作示例
Ftp客户端操作示例。
package ftp.service;import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPFileFilter;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.ftpserver.ftplet.FtpException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.*;public class FtpClient {private Logger logger = LoggerFactory.getLogger(getClass());private FTPClient ftpClient;/*** @param ftpHost FTP主机服务器* @param ftpPassword FTP 登录密码* @param ftpUserName FTP登录用户名* @param ftpPort FTP端口 默认为21*/public FtpClient(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort, String ftpEncoding) throws FtpException {try {ftpClient = new FTPClient();ftpClient.setControlEncoding(ftpEncoding); // 中文支持ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {ftpClient.disconnect();throw new FtpException("未连接到FTP,用户名或密码错误。");}} catch (Exception e) {throw new FtpException(e);}}/*** 查看FTP服务器文件及目录* listDirectories()仅列出目录, 不包含文件*/public void listFtpFile() throws FtpException {try {FTPFile[] ftpFiles = ftpClient.listFiles();for (FTPFile ftpFile : ftpFiles) {System.out.println(ftpFile.getName());}} catch (Exception e) {throw new FtpException(e);}}/*** 查看FTP服务器文件及目录(指定path)* listDirectories()仅列出目录, 不包含文件*/public void listFtpFile(String pathname) throws FtpException {try {FTPFile[] ftpFiles = ftpClient.listFiles(pathname);for (FTPFile ftpFile : ftpFiles) {System.out.println(ftpFile.getName());}} catch (Exception e) {throw new FtpException(e);}}/*** 查看FTP服务器文件及目录(指定path), 带过滤规则* listDirectories()仅列出目录, 不包含文件*/public void listFtpFile(String pathname, FTPFileFilter filter) throws FtpException {try {FTPFile[] ftpFiles = ftpClient.listFiles(pathname, filter);for (FTPFile ftpFile : ftpFiles) {System.out.println(ftpFile.getName());}} catch (Exception e) {throw new FtpException(e);}}/*** 从FTP服务器下载文件** @param ftpPath FTP服务器中文件所在路径 格式: ftptest/aa* @param localPath 下载到本地的位置 格式:H:/download* @param fileName 文件名称*/public void downloadFtpFile(String ftpPath,String localPath, String fileName) throws FtpException {try {ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//默认ASCII_FILE_TYPE, 传输文件会出问题ftpClient.enterLocalPassiveMode();ftpClient.changeWorkingDirectory(ftpPath);File localFile = new File(localPath + File.separatorChar + fileName);OutputStream os = new FileOutputStream(localFile);ftpClient.retrieveFile(fileName, os);os.close();} catch (Exception e) {throw new FtpException(e);}}/*** Description: 向FTP服务器上传文件** @param ftpPath FTP服务器中文件所在路径 格式: ftptest/aa* @param fileName ftp文件名称* @param input 文件流*/public void uploadFile(String ftpPath, String fileName, InputStream input) throws FtpException {try {ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient.enterLocalPassiveMode();ftpClient.changeWorkingDirectory(ftpPath);ftpClient.storeFile(fileName, input);input.close();} catch (Exception e) {throw new FtpException(e);}}public void close(){try {ftpClient.logout();} catch (IOException e) {logger.error(e.getMessage());}finally {if (ftpClient != null && ftpClient.isConnected()) {try {ftpClient.disconnect();} catch (IOException ioe) {logger.error(ioe.getMessage());}}}}
}
maven依赖:
<dependency><groupId>org.apache.ftpserver</groupId><artifactId>ftpserver-core</artifactId><version>1.1.1</version></dependency>
Ftp客户端上传、下载操作示例相关推荐
- Android FTP 客户端 上传/下载 带进度条实战源码
Android FTP 开发,我个人是使用commons-net-3.1.jar,别问我为什么是度娘教我的,附上commons-net-3.1.jar的开源下载地址http://grepcode.co ...
- Linux 终端访问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...
- java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题
废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String usern ...
- ftp文件推送 linux_Linux 终端访问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上.google 一下. 方 ...
- 关于FileZilla连接FTP站点上传下载文件
关于FileZilla连接FTP站点上传下载文件 浏览器搜索FileZilla官网:https://www.filezilla.cn/download 根据自己操作系统安装 安装完成之后的启动界面是这 ...
- Linux 终端訪问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...
- java文件客户端下载_使用Java写一个minio的客户端上传下载文件
标签:color ati tty java system wired format media param 前言: 确保已经安装了minio的服务端 代码: pom.x ...
- C++:FTP文件上传下载(附完整源码)
C++:FTP文件上传下载 FTP文件下载 FTP文件上传 FTP文件下载 #include #include #include #pragma comment(lib, "WinInet. ...
- Java通过FTP服务器上传下载文件的方法
本文介绍了如何使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作 ...
最新文章
- AI领域我重点关注的几个今日头条号
- 动态查看JVM内存的工具
- 【ajax+php】动态展示4级单位(省、市、县、镇)
- 基于Foursquare, 我们还能做什么 ?
- 给采购凭证分配合作伙伴方案
- ajax前端取消用户发送重复请求
- 【动态规划】计蒜客:跳木桩(最长递增子序列的变体)
- SQLserver插入\更新中文乱码
- 空间查询时出错误 An expected Field was not found or could not be retrieved properly. [SHAPE.AREA] 问题的解决...
- unity游戏框架学习-资源管理
- 金仓数据库KingbaseES与Oracle大对象类型之间的区别
- python的dispatch_win32com.client.Dispatch()函数用法
- Mina中的Kimchi SNARK
- 三峡学院计算机调剂,2018年重庆三峡学院考研预调剂公告
- Linux2.6.29设备模型分析-概述
- 免费开放API支付接口
- 标签超出图像控件c语言,VC++标签控件之图像标签控件
- 【神经网络】神经网络中的矩阵的理解
- 使用install安装应用的时候出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE问题的解决方法
- “碎片化时代”的灵动工作与生活
热门文章
- java http 302_java中httpclent以post方式提交请求时,http返回码是302重定向时,不自动跳转的处理...
- centOS7系统虚拟机节点的搭建
- 动态追踪技术之BTrace
- 【Python】​​​​​​​turtle八角图形绘制
- 流程图(Activity)绘制
- NEC红外传输协议详解(含代码)
- 伯恩斯新情绪疗法--化整为零
- CSS中最全的换行处理方式
- github中如何删除本地仓库
- 用于预测脊柱转移术后30天死亡率的机器学习算法的开发