java实现FTP文件上传与文件下载
来源:互联网 发布:gta5卡怎么优化 编辑:程序博客网 时间:2024/05/22 14:02
本文实例为大家分享了两种java实现FTP文件上传下载的方式,供大家参考,具体内容如下
第一种方式:
这种方式没啥可说的,比较简单,也不存在中文乱码的问题。貌似有个缺陷,不能操作大文件,有兴趣的朋友可以试试。
第二种方式:
这种方式的话需要注意中文乱码问题啦,如果你设置不恰当,有可能上传的文件名会为乱码,有的时候根本就上传不上去,当然,也不会跟你提示,因为原本就没异常。在网上找了好多解答方案,众说纷纭,几乎都是从一个版本拷贝过去的,也没有经过自己的真是检验。为此,也吃了不少苦头。大致分为以下两种解决方案:
1、加上以下三句即可解决
ftpClient.setControlEncoding(“GBK”);
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
解答:经过测试,根本上行不通,上述问题依然存在
2、与上述方式有所类似,但我觉得这种方式更靠谱一点
首先,加上ftpClient.setControlEncoding(“GBK”);这一句,然后,将所有的中文进行转码为“ISO-8859-1”格式,如下:
ftpClient.changeWorkingDirectory(new String(remotePath.getBytes("GBK"),"iso-8859-1"));
解答:经过测试,仍然行不通,之所以我说此方式更靠谱一点,请继续往下看
首先我们来说说为什么要进行转码:
因为在FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码。
接下来的问题是,我们应该将什么编码转换为此格式。因此,就有了第二种解决方案——把 GBK格式的转换为ISO-8859-1格式。而且,有的人还说,必须得这么转。其实,之所以他们能这么说,我觉得完全是巧合。它的真正原理是,既然 FTP协议规定的编码格式是“ISO-8859-1”,那么我们确实得将格式转换一下,然后等服务器收到文件时再自动转换为系统自带的编码格式,因此,关键不是规定为什么格式,而是取决于FTP服务器的编码格式。因此,如果FTP系统的编码格式为“GBK”时,第二种方式肯定会成功;但是,如果系统的编码格式为“UTF-8”时,那就会仍然出现乱码啦。所以,我们只能通过代码先获取系统的编码格式,然后通过此编码格式转换为ISO-8859-1的编码格式。获取方式如下:
private static String encoding = System.getProperty("file.encoding");
以上代码均通过自己测试,望能为大家解决一下问题!
- Java实现FTP文件上传与下载
- Java实现FTP文件上传与下载
- Java实现FTP文件上传与下载
- Java实现FTP文件上传与下载
- java实现FTP文件上传与文件下载
- java实现FTP文件上传与文件下载
- Java代码实现FTP服务器上传文件与下载文件
- java实现ftp文件的上传与下载
- java实现ftp文件的上传与下载
- java实现ftp文件的上传与下载
- java实现ftp文件的上传与下载
- java实现ftp文件的上传与下载
- java实现ftp文件的上传与下载
- 实现FTP的文件上传与下载
- 实现FTP文件上传与下载
- JAVA Ftp实现文件上传于下载
- java通过apache ftp实现ftp上传文件,下载文件
- FTP文件上传与下载(JAVA)
- Tramp data In Kernel
- D21 flume/kafka/storm/redis综合
- D24 推荐系统DSP介绍
- poj1014 Dividing(多重背包的二进制优化)
- java实现定时任务的三种方法
- java实现FTP文件上传与文件下载
- Mips KVM Trap&Emulate implemented in Linux
- 【Java POI】1、Java POI的使用
- D25 Scala基础
- pomelo源码分析(3)--配置设置和读取及app.load
- fopen
- spring 配置定时任务
- 如何使用C语言实现人员信息展示
- D26 Scala增强