Qt上傳檔案到ftp伺服器

2021-09-01 23:51:57 字數 2188 閱讀 7552

第一步,首先確定環境已經配置好

qt應用程式預設沒有加qtnetwork庫。如下圖:

在開發過程中,因處理業務需要手動新增qtnetwork庫。根據常見情況分為以下兩種:

若使用qtcreator開發程式

在工程的pro檔案中新增:qt += network(如果找不到.pro檔案,如果配置了vs+qt的環境,則可以在vs開啟專案之後,在專案名右鍵選擇:create basic .pro file)即可生成 .pro 檔案。

若使用vs + qt開發程式

**如下:

標頭檔案新增:

#include #include #include #include
此處假設伺服器端口號為:

qfile ffile("c:/file.txt");//要上傳的檔案的本地路徑

ffile.open(qiodevice::readonly);

qbytearray byte_file = ffile.readall();

qnetworkaccessmanager *accessmanager = new qnetworkaccessmanager(this);

accessmanager->setnetworkaccessible(qnetworkaccessmanager::accessible);

qurl url("/upload/file_new.txt");//上傳到該伺服器下的upload資料夾內

url.setport(21);//伺服器端口號,一般沒有被更改過的預設埠號為21

url.setusername("nnir_ftp");//伺服器登入使用者名稱

url.setpassword("nnirnnir");//伺服器登入密碼

qnetworkrequest request(url);

reply = accessmanager->put(request, byte_file);

connect(accessmanager, signal(finished(qnetworkreply*)), this, slot(replyfinished(qnetworkreply*)));

connect(reply, signal(error(qnetworkreply::networkerror)), this, slot(loaderror(qnetworkreply::networkerror)));

connect(reply, signal(uploadprogress(qint64, qint64)), this, slot(loadprogress(qint64, qint64)));

若在vs2013 + qt5編譯錯誤提示如下:

一般出現此鏈結問題都是沒有新增庫檔案造成的。

很明顯,程式中使用了qtnetwork庫,那麼就需要手動新增qtnetwork庫檔案:

(1)在debug模式,需要加q5tnetworkd.lib庫檔案

(2)在release模式,需要加qt5network.lib庫檔案

當使用vs進行開發時在**新增呢?共有兩個地方需要新增(缺一不可):

(1)專案->屬性->c/c++->常規->附加包含目錄->在彈出的對話方塊中,點那個資料夾形狀的按鈕新增新行,輸入$(qtdir)\include\qtnetwork

具體如圖所示:

(2)專案->屬性->聯結器->輸入->附加依賴項,新增 qt5networkd.lib(debug模式)或者 qt5network.lib(release模式)

具體如圖所示:

新增完成後,再編譯。若仍然報錯,請仔細覆盤如上步驟。

備註:其他模組庫的新增模擬如上步驟。

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

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

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

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

java檔案上傳ftp伺服器

description 向ftp伺服器上傳檔案 version 1.0 param url ftp伺服器hostname param port ftp伺服器端口 param username ftp登入賬號 param password ftp登入密碼 param path ftp伺服器儲存目錄 p...