博客地址已更改,文章數量較多不便批量修改,若想訪問源文請到 coologic博客 查閱,網址:www.coologic.cn
如本文記錄地址為 techieliang.com/A/B/C/ 請改為 www.coologic.cn/A/B/C/ 即可查閱
版權聲明:若無來源注明, Techie亮博客文章均為原創。 轉載請以鏈接形式標明本文標題和地址:
本文標題:Qt使用QNetworkAccessManager實現Ftp操作 本文地址: http://techieliang.com/2017/12/653/
1. 介紹
QtNetwork是Qt網絡操作模塊,提供了基於TCP/IP的各種API,除了之前介紹過的最基礎的TCP及UDP通訊:QTcpSocket-Qt使用Tcp通訊實現服務端和客戶端、QUdpSocket-Qt使用Udp通訊實現服務端和客戶端,還提供了HTTP、HTTPS、FTP等高級API,並統一使用QNetworkAccessManager進行操作。HTTP操作請看:Qt使用QNetworkAccessManager實現Http操作
qt4x分別使用QFtp和QHttp,5以后統一用QNetworkAccessManager
2. 使用說明
首先請看:Qt使用QNetworkAccessManager實現Http操作
ftp與http操作完全一樣,只不過需要設置一下用戶名、密碼、地址、端口、文件路徑。這些操作只需要對QUrl做配置,其余不需要改變
分別調用QUrl的
- void setUserName(const QString &userName, ParsingMode mode = DecodedMode)
- void setPassword(const QString &password, ParsingMode mode = DecodedMode)
- void setHost(const QString &host, ParsingMode mode = DecodedMode)
- void setPort(int port)
- void setPath(const QString &path, ParsingMode mode = DecodedMode)
上述對於還需要配置一下:setScheme(“ftp”)
- void setScheme(const QString &scheme)
這個指的是 ftp:// 和http://由於並沒有通過setUrl設置url,需要主動的指定scheme
上面分別指定了ftp以及ip,port及path,這四項可以直接setUrl但是建議分別調用組合
3. 上傳與下載
下載就是get,除了QUrl配置不一樣其他與http完全相同,最后把get得到的所有數據保存到文件即可
上傳那就是put,先從文件讀取出所有數據,然后put即可,注意讀取完存為QByteArray
類型