JAVA FTP

JAVA使用FTPClient下載FTP檔案

李宗霖 2018/12/25 12:22:22
8941

JAVA使用FTPClient下載FTP檔案


簡介

使用apache.common.net.ftp來連線FTP並下載或上傳檔案

作者

李宗霖


一、先行作業

要使用FTPClient必須先導入apache的jar包

 
 
二、實作

1.連結設定

    addProtocolCommandListener可將過程中所使用到的命令顯示在console。
    connect指令帶入FTP server的IP資料來連接FTP。
    login指令帶入帳號密碼登入FTP。
    getReplyCode取得回應碼。
    isPositiveCompletion用來判斷回應碼是否成功與FTP連線
 
 

    setFileType設定檔案的類型,共有四種可用(如圖中註解)
    enterLocalActiveMode設定主動或被動模式:
        主動模式:client主動向server要求 使用特定port來傳輸
        被動模式:client 向server發出請求,再由server向 client 告知使用哪一個port
        通常一般都是使 用被動模式
 
 
 
2.多檔下載
 
    FileOutputStream用來輸出下載的檔案
    changeWorkingDirectory可以用來移動到該目錄底下
    changeToParentDirectory可以回到上一層目錄
    listFiles用來取得該路徑下的所有檔案(若不傳參數則為當前目錄)
    此處使用 listFiles加上迴圈來分別取得檔案名稱並下載
    retrieveFile從FTP server下載檔案
    deleteFile用來刪除FTP上面的檔案
 
 
 
3.單檔上傳
    使用FileInputStream來輸入檔案
    storeFile將檔案上傳至FTP server
    rename可以將檔案重新命名
 
 
 
4.FTPS
將FTPClient改為FTPSClient並修改一下參數,其餘部分並無太大差異,如下
 
 
須注意的是,FTPSClient目前不支援session resumption,故若要使用的話必須自己覆寫FTPSClient
 
FileZilla Server中,這項打勾FTPSClient便會因不支援而連線錯誤

三、總結

使用FTPClient/FTPSClient可以輕鬆的實現FTP下載與上傳功能,設定上也不會太繁瑣,基本該有的功能都能達成,是個相當不錯的元件。

 

李宗霖