ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作
生活随笔
收集整理的這篇文章主要介紹了
ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?一個簡單的Ftp客戶端文件上傳/下載操作示例。
上傳文件
QNetworkAccessManager manager; QUrl url; /* 設置通訊協議 */ url.setScheme("ftp"); /* 設置用戶名 */ url.setUserName("root"); /* 設置密碼 */ url.setPassword("123456"); /* 設置主機,也可以是域名 */ url.setHost("127.0.0.1"); /* 設置端口號,一般為21 */ url.setPort(21); /* 設置路徑 */ url.setPath("/tmp/hello.png"); /* 裝載本地文件 */ QFile file("/Desktop/hello.png"); file.open(QIODevice::ReadOnly); /* 讀取本地文件數據 */ QByteArray data = file.readAll(); file.close();QNetworkRequest request(url); /* 上傳數據,上傳成功后會在遠端創建/tmp/hello.png文件 */ QNetworkReply* reply = manager.put(request, data); QEventLoop eventLoop; QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit())); /* 進入等待,但事件循環依然進行 */ eventLoop.exec(); if (reply->error() != QNetworkReply::NoError) {qDebug() << "Error: " << reply->errorString(); }下載文件
QNetworkAccessManager manager; QUrl url; /* 設置通訊協議 */ url.setScheme("ftp"); /* 設置用戶名 */ url.setUserName("root"); /* 設置密碼 */ url.setPassword("123456"); /* 設置主機,也可以是域名 */ url.setHost("127.0.0.1"); /* 設置端口號,一般為21 */ url.setPort(21); /* 設置路徑 */ url.setPath("/tmp/test.txt"); QNetworkRequest request(url); /* 執行Get請求 */ QNetworkReply* reply = manager.get(request); QEventLoop eventLoop; QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit())); /* 進入等待,但事件循環依然進行 */ eventLoop.exec(); if (reply->error() == QNetworkReply::NoError) {/* 創建本地文件 */QFile file("test.txt"); file.open(QIODevice::WriteOnly);/* 寫入文件 */file.write(reply->readAll()); file.close(); } else {qDebug() << "Error: " << reply->errorString(); }總結
- 上傳文件:配置url->加載數據->put操作
- 下載文件:配置url->get操作->獲取數據保存到文件
- 如服務端沒有身份驗證,客戶端可以省略用戶名和密碼操作。
關注Qt君公眾號獲取更多知識。
總結
以上是生活随笔為你收集整理的ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玉溪烟贵吗
- 下一篇: maya点线面计数_Maya课时:点线面