1. 程式人生 > >使用java向FTP上傳或下載壓縮檔案時的問題

使用java向FTP上傳或下載壓縮檔案時的問題

今天在使用java向FTP伺服器傳輸檔案時遇到了問題,這個檔案是好多圖片的壓縮檔案,直接使用 ftpClient.storeFile(f.getName(), instream); 會將壓縮檔案傳入FTP伺服器,但是在FTP伺服器解壓時發現,壓縮包裡面的圖片解壓不出來,檔案大小是一樣的,但是裡面只有一個空白檔案,將FTP伺服器上的檔案下載下來,同樣打不開

我理解為上傳檔案損壞了,多測試了幾組壓縮檔案都是如此

 

解決方法:

FTP協議規定了兩種傳輸方式分別是ASCII與binary方式

ASCII方式,這種機制指,在針對傳輸內容是ASCII碼文字時,檔案內容會被調整,有時會造成傳輸的檔案被損壞,ASCII方式會把檔案中的某些字串位丟棄,所以不能保證檔案資料的每一位都是重要的。

binary方式,首先二進位制方式保證了檔案內容所有資料位都是重要的。

傳輸時使用二進位制方式傳輸

ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

 

再使用

 ftpClient.storeFile(f.getName(), instream);後問題解決