使用Java ftpclient 下载文件损坏无法打开

问题背景:

最近做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/

你可能感兴趣的:(异常解决)