C 實現FTP上傳檔案

2021-10-08 23:26:50 字數 2056 閱讀 5922

文末有獲取完整原始碼的路徑鏈結,在我的上傳資源裡也有完整**,

各位可不聽我巴拉巴拉,直接獲取**調優,嘿嘿。

除錯過程中有問題,再看著我的博文,望能幫助到您。

也願幫助到以後的我自己,那樣的話,我會很開心感激現在的自己。

//ftp位址

string ftpsvrip="10.192.***.xx";

//ftp埠

int port=21;

//使用者名稱

string username="user";

//使用者密碼

string password="12345";

//上傳檔案源路徑

string sourcefilepath="c:/desktop/測試";

//上傳檔案目的路徑

string desfilepath="./test/測試/中文/";

hinternet hint;

hinternet hftp;

hint = internetopen(0, internet_open_type_preconfig, 0, 0, 0);

if (hint==null)

//建立ftp連線

hftp = internetconnect(hint, ftpsvrip.c_str(),port,username.c_str(),password.c_str(), internet_service_ftp, 0, 0);

if (hftp==null)

//如果目的路徑不存在,一級一級建立

//目的路徑格式為:"./dir/dir1/.../"

int pos=1;

string temppath;

while(pos>0)

}

//如果ftpsetcurrentdirectory一直報錯,看一下desfilepath路徑是否建立成功,用資源管理器看能否直接訪問ftp

if (ftpsetcurrentdirectory(hftp,desfilepath.c_str()))

//上傳檔案源為資料夾

else }

}

internetclosehandle(hftp);

internetclosehandle(hint);

在windows系統預設編碼格式為gb2312,而在linux下預設的編碼格式為utf8,當檔案在不同作業系統之間傳輸時,為了避免中文亂碼,需要對檔案編碼格式進行轉換。從windows傳到linux時需要從gtu(gb2312> utf8),從linux傳到windows時需要utg(utf8> gb2312)。在相同作業系統間,直接傳輸不需理會中文編碼問題。

系統自帶的ftp上傳相關介面,根據程式字符集的不同,有兩種版本的實現,所以如果程式是在windows系統下,需要設定成 「未設定」 或者 」使用多位元組字符集」。

實現過程中參考以下部落格,在此致謝。

世界這麼大,我只是乙個永遠需要不斷學習和思考的小學生,感謝所有的挫折和困難。

FTP檔案上傳

是網上找的例子,原文找不到了。public class ftputils2 return 判斷是否登入成功 public boolean ftplogin else ftp伺服器連線回答 int reply this.ftpclient.getreplycode if ftpreply.isposi...

ftp檔案上傳

pom依賴引入 commons net commons net 3.3實現 service public class ftpserviceimpl private string ftphost ftp伺服器位址 value private int ftpport ftp伺服器端口 value pri...

FTP上傳檔案

工作中要發布 或者api,之前採用過vs自帶的ftp發布方式,但感覺不太自由,不能部分更新發布 後來就採用vs檔案發布,然後手動的將發布的檔案放到伺服器上,每次發布都要開啟伺服器不太方便。就採用了現在的方式 服務端filezilla 客戶端flashfxp。這裡記錄一下安裝和除錯filezilla ...