设为首页 加入收藏

TOP

Java FTP下载文件以及编码问题小结
2017-12-06 17:35:49 】 浏览:239
Tags:Java FTP 下载 文件 以及 编码 问题 小结

之前在开发过程中,遇到了一点问题,我要访问一个FTP服务器去下载文件详细情况如下:


1. 需要传入一个可能为中文的文件名;


2. 通过文件名去FTP上寻找该文件;


3. FTP服务器的命名编码为“GBK”;


1.通过GET方法直接将文件名负载URL后面,但需要通过转码;


2.在Java Controller中收到参数后,进行解码,解码为正常数据;


3.用正常数据再转码为GBK,到Service中去调用FTP即可


4.(因公司安全考虑,我们需要在另一个模块中调用FTP)通过rest接口将文件名传出,另一模块获取到文件流转换为byte[]传回,调用response输出即可


Jquery对URL以及参数转码,据我所了解的主要应用encodeURI、encodeURIComponent,例如我需要传入变量名为fileDepence


这样我在后台就可以接收到转码过后的fileDepence这个串,通过验证encodeURIComponent会以“utf-8”进行转码,所以我们使用Java对其解码:


这样得到的viewItem就与我们原本要传入的值一致了,如果传入的为中文文件名,则此时viewItem便是对应的中文文件名了。


之后我又了解一下,通过JS来完成GBK的转码比较麻烦,而采用Unicode的Java则比较方法,则同理,我们使用viewItem在以GBK来转一次码,就可以得到对应的FTP服务器中的文件名了。


建立一个FTP连接的公用类


在另一个模块的Service中建立一个下载的方法,在rest接口访问的Controller中调用该方法。


在本地Service中调用rest接口完成输出response输出即可,同时要注意response的设置


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java 访问权限控制 小结 下一篇持久化ORM框架——Hibernate与Myb..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目