FTP服务端文件下载到本地
来源:互联网 发布:广发期货模拟软件 编辑:程序博客网 时间:2024/05/21 14:52
import java.awt.image.BufferedImage;import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.SocketException; import java.util.Properties; import javax.imageio.ImageIO;import org.apache.commons.net.ftp.*; import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.rendering.PDFRenderer;public class DownloadFile { /** * 获取FTPClient对象 * * @param ftpHost * FTP主机服务器 * @param ftpPassword * FTP 登录密码 * @param ftpUserName * FTP登录用户名 * @param ftpPort * FTP端口 默认为21 * @return */ public static FTPClient getFTPClient(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort) { FTPClient ftpClient = new FTPClient(); try { ftpClient = new FTPClient(); ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器 ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器 if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { System.out.println("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { System.out.println("FTP连接成功。"); } } catch (SocketException e) { e.printStackTrace(); System.out.println("FTP的IP地址可能错误,请正确配置。"); } catch (IOException e) { e.printStackTrace(); System.out.println("FTP的端口错误,请正确配置。"); } return ftpClient; } /* * 从FTP服务器下载文件 * * @param ftpHost FTP IP地址 * * @param ftpUserName FTP 用户名 * * @param ftpPassword FTP用户名密码 * * @param ftpPort FTP端口 * * @param ftpPath FTP服务器中文件所在路径 格式: ftptest/aa * * @param localPath 下载到本地的位置 格式:H:/download * * @param fileName 文件名称 */ public static void downloadFtpFile(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort, String ftpPath, String localPath, String fileName) { FTPClient ftpClient = null; try { ftpClient = getFTPClient(ftpHost, ftpUserName, ftpPassword, ftpPort); ftpClient.setControlEncoding("iso-8859-1"); // 中文支持 ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); ftpClient.changeWorkingDirectory(ftpPath); FTPFile[] fs = ftpClient.listFiles(); for(FTPFile ff:fs){ System.out.println(ff.getName() ); } File localFile = new File(localPath + File.separatorChar + fileName); OutputStream os = new FileOutputStream(localFile); if(ftpClient.retrieveFile(new String(fileName.getBytes(),"iso-8859-1") , os)) System.out.println("YES"); os.close(); ftpClient.logout(); } catch (FileNotFoundException e) { System.out.println("没有找到" + ftpPath + "文件"); e.printStackTrace(); } catch (SocketException e) { System.out.println("连接FTP失败."); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); System.out.println("文件读取错误。"); e.printStackTrace(); } } }
mian类
import java.io.File;import java.io.UnsupportedEncodingException;public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String ftpHost = "172.22.224.168"; String ftpUserName = "ieqpadm"; String ftpPassword = "ieqpadm123"; int ftpPort = 21; String ftpPath = "/home/ieqpadm/data/test/chenyltest"; String localPath = "D:"; String fileName="EQP-信息系统情况汇总-IEM系统 (3).pdf"; DownloadFile.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, localPath, fileName); }}
下载文件时,出现中文文件查找不到的问题。主要是因为ftp协议中文件名编码方式是”iso-8859-1”,文件名需要转码后去查找。new String(fileName.getBytes(),”iso-8859-1”)
阅读全文
0 0
- FTP服务端文件下载到本地
- jsp 下载 服务端的文件到本地
- jsp 下载 服务端的文件到本地
- jsp 下载 服务端的文件到本地
- java读取FTP文件下载到本地
- C# 从FTP服务器下载文件到本地
- java 远程从FTP服务器下载文件到本地
- ssm单文件下载ftp服务器到本地
- 将本地文件上传到远程FTP服务器和从远程FTP服务器下载文件到本地
- QT---FTP练习,连接FTP服务器,浏览其中的文件,下载到本地目录中
- 下载文件到本地
- php操作ftp上传文件、创建目录、删除文件、删除目录、下载文件到本地
- php操作ftp上传文件、创建目录、删除文件、删除目录、下载文件到本地
- C# FTP下载文件夹到本地
- Android 从 ftp下载图片到本地
- MapReduce基础开发之五分布式下载ftp文件到本地再迁移到hdfs
- java下载远程FTP文件至本地
- 以命令方式从FTP 服务器下载文件到本地指定目录
- C语言 const static 静态变量 全局变量 局部变量
- kprobe
- Ubuntu 安装Node.js、Express和MySQL
- PHP实现快速排序算法
- Cocoapods 2017最新安装图文教程及快速安装方法
- FTP服务端文件下载到本地
- QT
- 阿里云上部署的SQL Server服务器和SVN服务器不能远程访问
- Firefox兼容OCX控件的方法
- 盘点2017年上半年移动互联网安全事件
- C#按钮控件数组绑定按钮时间和键盘操作事件
- nodejs搭建web服务器
- 1277: 连续和
- Android Framework:Binder(6)-Java层Service的注册及跨进程调用