springMVC下载FTP上的文件
springMVC下载FTP上的文件
今天没时间写。先上传 一个工具类
工具类
package com.utils;import java.io.File; import java.io.FileOutputStream; import java.io.IOException;import org.apache.commons.lang3.StringUtils; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*** ftp 工具类* * @date 2016年1月15日*/ public class FTPUtils {private static final Logger logger = LoggerFactory.getLogger(FTPUtils.class);private static final FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_NT); public static final String DATE_TIME_FORMAT_TWO = "yyyy-MM-dd HH:mm";private static final int BUFFER_SIZE = 1024;static {config.setDefaultDateFormatStr(DATE_TIME_FORMAT_TWO);config.setServerTimeZoneId("GMT+8");config.setServerLanguageCode("zh");}/*** 获取ftp 客户端** @param host* @param port* @param username* @param password* * @return FTPClient*/public static FTPClient client(String host, int port, String username, String password) {FTPClient client = new FTPClient();client.configure(config);try {client.connect(host, port);client.enterLocalPassiveMode();int replyCode = client.getReplyCode();if (FTPReply.isPositiveCompletion(replyCode)) {client.login(username, password);replyCode = client.getReplyCode();if (FTPReply.isPositiveCompletion(replyCode)) {return client;} else {logger.info(String.format("ftp client open faild. replyCode: %d, %s ", replyCode, client.getReplyString()));client.disconnect();return null;}} else {logger.info(String.format("ftp client open faild. replyCode: %d, %s ", replyCode, client.getReplyString()));client.disconnect();return null;}} catch (IOException e) {logger.error("ftp client open faild", e);return null;}}/*** ftp 下载远程文件* * @param client ftp客户端对象* @param remoteDirPath 远程目录* @param remoteFile 远程文件* @param localDir 本地存储目录(空 使用用户当前目录)* @param localFile 本地存储名称(空 使用文件原始名称)* * @return boolean*/public static boolean download(FTPClient client, String remoteDirPath, String remoteFile, String localDir, String localFile) {try {boolean dir = client.changeWorkingDirectory(remoteDirPath);boolean result = false;if (dir) {FTPFile[] files = client.listFiles(remoteFile);if (files.length == 1) {FTPFile file = files[0];if (file.isFile()) {if (StringUtils.isEmpty(localFile))localFile = file.getName();if (StringUtils.isEmpty(localDir))localDir = System.getProperty("user.home");File localDirFile = new File(localDir);if (!localDirFile.exists())localDirFile.mkdirs();StringBuilder sb = new StringBuilder(localDir);sb.append(File.separator).append(localFile);try (FileOutputStream out = new FileOutputStream(sb.toString())) {client.setBufferSize(BUFFER_SIZE);client.setFileType(FTPClient.BINARY_FILE_TYPE);result = client.retrieveFile(file.getName(), out);} catch (IOException e) {e.printStackTrace();logger.error("ftp download faild", e);}}}}return result;} catch (IOException e) {e.printStackTrace();logger.error("ftp download faild", e);return false;}}/*** ftp 连接断开** @param client ftp 客户端*/public static void close(FTPClient client) {try {if (!client.isConnected())client.disconnect();} catch (IOException e) {e.printStackTrace();}}}
FTPClient client = FTPUtils.client(ftpHost, ftpPort, ftpUsername, ftpPassword); FTPUtils.download(client, "/", file + zip, localPath, null); FTPUtils.close(client);
转载于:https://www.cnblogs.com/chenyq/p/5383440.html
springMVC下载FTP上的文件相关推荐
- python3实现下载ftp上的文件
如题,使用python3中ftplib模块实现将ftp服务器上的文件下载到本地.Demo如下: import ftplib import os from pathlib import Path imp ...
- 在linux服务器上如何下载ftp上面的文件?lftp详解
1.安装lftp yum install -y lftp 2.登录 lftp user:password@ip 3.查看是否登录成功 ls看下否显示目录 提示报错: 提示Fatal Error: Ce ...
- 下载了python在哪里写代码-通过python下载FTP上的文件夹的实现代码
# -*- encoding: utf8 -*- import os import sys import ftplib class FTPSync(object): def __init__(self ...
- linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器
如何通过FTP将文件上传到腾讯云Linux云服务器?上一篇小编给大家介绍了通过Winscp将文件上传到云服务器的方法,今天小编为大家介绍过FTP将文件上传到腾讯云Linux云服务器的方法,用户需要使用 ...
- java ftp 上传文件到服务器,java实现ftp上传文件到服务器
java实现ftp上传文件到服务器 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ ...
- ssh怎么ftp上传文件到服务器,ssh ftp上传文件到服务器
ssh ftp上传文件到服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别 ...
- ftp 文件夹 上传到服务器,ftp上传文件夹到服务器 远程路径
ftp上传文件夹到服务器 远程路径 内容精选 换一换 WinSCP工具可以实现在本地与远程计算机之间安全地复制文件.与使用FTP上传代码相比,通过 WinSCP 可以直接使用服务器账户密码访问服务器, ...
- Python使用FTP上传文件
Python使用FTP上传文件 本文主要介绍如何使用Python通过FTP上传文件. FTP简介 FTP即文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一种 ...
- ftp上传文件与服务器的连接被重置怎么办,FTP上传文件与服务器的连接被重置
FTP上传文件与服务器的连接被重置 内容精选 换一换 通过FTP或SFTP连接,可以对FTP或SFTP服务器抽取或加载文件,支持CSV.二进制和JSON格式.FTP和SFTP的连接参数相同. 通过FT ...
最新文章
- 敏捷方法适合什么样的团队?
- ***如何优雅的选择字体(font-family)
- 第十六届全国大学生智能汽车竞赛RT-Thread创新专项奖
- 影响软件测试未来的5件事 (译)
- javascript select option对象总结
- js只能输入数字[价格等]
- wifi p2p连接 linux,Wi-Fi p2p ap 共存
- idea 一键部署 cloudtoolkit
- C++---list(列表)模板
- 【UML】概念、关联、画画(一)
- 自抗扰控制器七-二阶 LADRC-PLL 结构设计
- page cache和buffer cache之间的关系以及验证
- 关闭windows默认共享
- 我的世界boat运行库JAVA10_boat运行库导入下载
- android7 显示到pc,安卓手机上的画面怎么投屏到Win7电脑上?超详细投屏方法看这里!...
- 天大计算机英语面试,天大考研复试英文自我介绍
- PMP考点梳理大全(考生必看)-6.5
- jasperReport字体自定义,微软雅黑
- SAR成像系列:【4】合成孔径雷达(SAR)距离历程分析
- 计算机联锁工程设计的必要性和目的,计算机联锁系统工程设计的分析