J2SE - Commons-net包Ftp下載的檔案不能開啟
一、問題
部署在 Linux 上的應用服務,需要通過 Ftp 從中轉機上下載 Zip 檔案解壓並處理,而中轉機上的檔案是通過 shell 指令碼定時從三方的 Ftp 上下載的
有一天發現應用服務從中轉機下載的一個 Zip 檔案無法解壓,而在中轉機上的這個 Zip 檔案是可以解壓的
對比後發現應用服務下載後的檔案比中轉機上的少了一個位元組,而通過檔案比較工具對比兩個檔案的十六進位制,發現中轉機上的檔案中有一處是 "0D 0A" 即 "\r\n",應用服務下載後的檔案中卻是 "0A" 即 "\n"
這意味著FtpClient在獲取檔案的傳輸過程中對換行符做了轉換
二、方案
緊急處理方案是:對中轉機上的問題檔案先解壓,然後做了 dos2unix 處理,最後再壓縮回去
dos2unix fileName
優化處理方案是:設定 FtpClient 的檔案傳輸型別,從預設的ASCII改為二進位制
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);
相關文章
- ftp下載指定檔案FTP
- IIS不能下載ini檔案
- 從ftp上傳下載檔案(二)FTP
- 從ftp上傳下載檔案(一)FTP
- windows下ftp定時執行批次下載檔案,windows下ftp定時執行批次下載檔案的一種方法WindowsFTP
- 配置crontab+ftp自動下載檔案FTP
- 開啟壓縮檔案提示不能開啟此檔案怎麼辦
- 不能用ajax請求下載檔案
- CHM檔案打不開,提示"不能開啟檔案:mk@.....
- iis實現點選檔案下載而不是開啟檔案
- python寫的FTP簡單上傳下載檔案薦PythonFTP
- 便捷的檔案啟動器:Butler 啟用下載
- FTP自動下載並解壓縮檔案指令碼FTP指令碼
- mac下開啟FTP服務MacFTP
- 伺服器上下載檔案FTP伺服器FTP
- iOS開發網路篇之檔案下載、大檔案下載、斷點下載iOS斷點
- iOS匯入其他APP下載的檔案(用其他應用開啟)iOSAPP
- ASP.NET下載檔案(彈出開啟儲存檔案對話方塊)ASP.NET
- windows下如何開啟.ipynb檔案Windows
- 如何在命令列中使用 ftp 命令上傳和下載檔案命令列FTP
- 不能開啟要寫入的檔案故障解決辦法
- SQLServer資料庫MMC不能開啟檔案的解決方法SQLServer資料庫
- [原始碼和文件分享]基於WinInet的FTP檔案下載實現原始碼FTP
- 關於iis伺服器不能下載.cfg檔案的問題伺服器
- iOS開發中利用AFNetworking下載大檔案以及下載檔案的刪除iOS
- ftp下載工具,ftp下載工具哪個好用,如何使用?FTP
- tomcat5.0.28中可以透過連線下載英文檔案,卻不能下載中文檔案,為什麼?Tomcat
- 檔案下載
- ftp不能使用電腦資源管理器開啟,而使用IE開啟FTP
- Web 開發中的檔案下載問題Web
- PHP開發之檔案的上傳下載PHP
- 免費的FTP工具,免費的FTP工具下載!FTP
- com.jivesoftware.*這個包的原檔案到哪裡下載?
- 如何在linux下開啟FTP服務LinuxFTP
- linux下開啟並配置FTP服務LinuxFTP
- DBF檔案怎麼開啟?DBF檔案的開啟方法教程
- 實現一個基於FTP協議的程式——檔案上傳下載器(十三)FTP協議
- 檔案開啟的格式