Apache FTPClient上傳文件時的問題及解決


用Apache的FTPClient上傳文件時發現一個問題,就是上傳txt文件沒問題,但上傳zip文件時文件會被破壞,查了一下原因,原來是這樣:

因爲RFC959中規定了缺省的傳輸模式應該是ASCII的,org.apache.commons.net.ftp.FTPClient實現也遵守此標準。所以org.apache.commons.net.ftp.FTPClient在缺省情況下是按ASCII形式進行傳輸的,如果你是傳輸的BINARY二進制文件(如zip),那麼上傳完後的文件就會被破壞,但是傳輸ASCII文件(如txt)是沒有問題的。
 
所以如果你是傳輸的BINARY二進制文件的話,就需要在建立連接、登陸後,接下來設置文件類型,代碼示例如下:
ftpclient.connect(host);
ftpclient.login(user, password);
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);

這下就OK啦
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章