關於使用FTP上傳檔案到伺服器的小總結 java

2021-07-14 07:24:36 字數 1940 閱讀 4647

/**

* 建立ftp連線

* * @param ftphost

* 伺服器位址

* @param ftppassword

* 密碼

* @param ftpusername

* 使用者名稱

* @param ftpport

* 埠號

* @return

*/public class ftputil else

} catch (socketexception e) catch (ioexception e)

return ftpclient;

}}

建立好ftp連線後,就可以上傳檔案了:

public void upload(string ftpusername, string ftppassword, string ftphost, int ftpport)  catch (ioexception e1)  finally  catch (ioexception e) 

} }

最後在ftpmain類中呼叫該upload方法即可完成檔案的上傳: 

public class ftpmain 

}

你以為這樣就完了嗎!?

生活處處有驚喜,**處處有bug!我說說我遇到的」坑」吧(ps:我是邊學邊寫,可能有一些大神們看來很小的問題,請大神們自動忽略我。。。)

1、ftpclient呼叫changeworkingdirectory(

"picture/flower")返回false。查了大量的資料,結果發現伺服器端根本沒有flower目錄。。。

首先呼叫ftpclient.changeworkingdirectory(「/」)進入伺服器根目錄,然後列出根目錄下的所有檔案:

ftpfile files = ftpclient.listfiles();

for (int i = 0; i < files.length; i++)

發現有pictire目錄,然後重新啟動程式進入到ftpclient.changeworkingdirectory(「/picture」)目錄,再列出picture目錄下的所有檔案,發現根本沒有flower目錄。。。(ps:因為伺服器端是另外的小夥伴寫的,寫程式之前忘了溝通目錄是否存在了)。

所以只能自己建立flower目錄:先進入到picture目錄下,然後呼叫ftpclient.makedirectory(「flower」)方法建立flower目錄,返回true則表示建立成功

2、ftpclient連續兩次呼叫changeworkingdirectory(「」)方法進入非根目錄,第二次會返回false,示例如下:

錯誤示例:

ftpclient.changeworkingdirectory(「picture」)//返回true

ftpclient.changeworkingdirectory(「picture/flower」)//返回false

正確示例:

ftpclient.changeworkingdirectory(「picture」)//返回true

ftpclient.changeworkingdirectory(「/」)//回到根目錄

ftpclient.changeworkingdirectory(「picture/flower」)//返回true

即:呼叫changeworkingdirectory方法進入非根目錄後,再次呼叫changeworkingdirectory方法進入非根目錄之前,必須先回到根目錄,

否則第二次呼叫會失敗。這也就是為什麼在1中用紅色字型特別標註「重新啟動程式」的原因

關於java通過ftp上傳檔案到伺服器

建立ftp物件 ftpclient ftpclient new ftpclient 鏈結 ftpclient.connect 172.21 登入ftp伺服器 使用使用者和密碼 ftpclient.login oneday root 解決防火牆問題 ftpclient.enterlocalpassiv...

Qt上傳檔案到ftp伺服器

第一步,首先確定環境已經配置好 qt應用程式預設沒有加qtnetwork庫。如下圖 在開發過程中,因處理業務需要手動新增qtnetwork庫。根據常見情況分為以下兩種 若使用qtcreator開發程式 在工程的pro檔案中新增 qt network 如果找不到.pro檔案,如果配置了vs qt的環境...

上傳指定檔案到ftp伺服器上

echo offset ftpuser username setftppass password setftpip 192.168 0.2 setupfolder c temp setftpfile temp tempacc txt ftpfile echo ftpuser ftpfile echo...