问题背景:
最近做ftp对接的需求,文件下载下来后,打开提示文件损坏。直接用ftp命令登录下载下来的文件就没问题。说明是java程序的问题。百度一下很快就找到了解决方案。
解决方案:
在下载或上传文件之前,设置文件编码类型为二进制文件,问题解决。(我是放在ftpclient初始化的时候就设置好)
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
补充姿势:
common-net的ftpclient默认是使用ASCII_FILE_TYPE,文件会经过ASCII编码转换,所以可能会造成文件损坏。所以我们需要手动指定其文件类型为二进制文件,屏蔽ASCII转换的操作,避免文件在转换的过程中受损。
下面是common-net 3.6 的API对这两种文件格式的说明
common-net 3.6 API地址:http://commons.apache.org/proper/commons-net/apidocs/
来源:CSDN
作者:桑汤奈伊伏
链接:https://blog.csdn.net/libertine1993/article/details/88694042#comments