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客户端上传、下载操作示例相关推荐

  1. Android FTP 客户端 上传/下载 带进度条实战源码

    Android FTP 开发,我个人是使用commons-net-3.1.jar,别问我为什么是度娘教我的,附上commons-net-3.1.jar的开源下载地址http://grepcode.co ...

  2. Linux 终端访问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

  3. java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题

    废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String usern ...

  4. ftp文件推送 linux_Linux 终端访问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上.google 一下. 方 ...

  5. 关于FileZilla连接FTP站点上传下载文件

    关于FileZilla连接FTP站点上传下载文件 浏览器搜索FileZilla官网:https://www.filezilla.cn/download 根据自己操作系统安装 安装完成之后的启动界面是这 ...

  6. Linux 终端訪问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

  7. java文件客户端下载_使用Java写一个minio的客户端上传下载文件

    标签:color   ati   tty   java   system   wired   format   media   param 前言: 确保已经安装了minio的服务端 代码: pom.x ...

  8. C++:FTP文件上传下载(附完整源码)

    C++:FTP文件上传下载 FTP文件下载 FTP文件上传 FTP文件下载 #include #include #include #pragma comment(lib, "WinInet. ...

  9. Java通过FTP服务器上传下载文件的方法

    本文介绍了如何使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作 ...

最新文章

  1. AI领域我重点关注的几个今日头条号
  2. 动态查看JVM内存的工具
  3. 【ajax+php】动态展示4级单位(省、市、县、镇)
  4. 基于Foursquare, 我们还能做什么 ?
  5. 给采购凭证分配合作伙伴方案
  6. ajax前端取消用户发送重复请求
  7. 【动态规划】计蒜客:跳木桩(最长递增子序列的变体)
  8. SQLserver插入\更新中文乱码
  9. 空间查询时出错误 An expected Field was not found or could not be retrieved properly. [SHAPE.AREA] 问题的解决...
  10. unity游戏框架学习-资源管理
  11. 金仓数据库KingbaseES与Oracle大对象类型之间的区别
  12. python的dispatch_win32com.client.Dispatch()函数用法
  13. Mina中的Kimchi SNARK
  14. 三峡学院计算机调剂,2018年重庆三峡学院考研预调剂公告
  15. Linux2.6.29设备模型分析-概述
  16. 免费开放API支付接口
  17. 标签超出图像控件c语言,VC++标签控件之图像标签控件
  18. 【神经网络】神经网络中的矩阵的理解
  19. 使用install安装应用的时候出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE问题的解决方法
  20. “碎片化时代”的灵动工作与生活

热门文章

  1. java http 302_java中httpclent以post方式提交请求时,http返回码是302重定向时,不自动跳转的处理...
  2. centOS7系统虚拟机节点的搭建
  3. 动态追踪技术之BTrace
  4. 【Python】​​​​​​​turtle八角图形绘制
  5. 流程图(Activity)绘制
  6. NEC红外传输协议详解(含代码)
  7. 伯恩斯新情绪疗法--化整为零
  8. CSS中最全的换行处理方式
  9. github中如何删除本地仓库
  10. 用于预测脊柱转移术后30天死亡率的机器学习算法的开发