天天看點

使用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對這兩種檔案格式的說明

使用Java ftpclient 下載下傳檔案損壞無法打開

common-net 3.6 API位址:http://commons.apache.org/proper/commons-net/apidocs/