firemail

标题: Qt从url下载文件 [打印本页]

作者: Qter    时间: 2018-4-12 16:48
标题: Qt从url下载文件
本帖最后由 Qter 于 2018-4-12 17:42 编辑

示例1:
通过Qt自带的例子学习,位置:[安装盘符]:\Qt\Qt5.1.1\5.1.1\Src\qtbase\examples\network\download

示例2:
通过Qt的文档,位置:https://wiki.qt.io/Download_Data_from_URL

用法原理:
1、使用QNetworkAccessManager的get方法,得到QNetworkReply
2、通过QNetworkReply其readAll方法,取得其中的QByteArray,即为下载的数据
3、利用QFile(QTemporaryFile)的write方法将数据写到磁盘上

另:如果URL为重定向的,则需要先通过QNetworkAccessManager的get方法得到QNetworkReply的重定向网址,再次使用上述的方法进行下载,用法如下:
m_pReply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl()
  1. #include "downloadmanager.h"
  2. DownloadManager manager;
  3. QObject::connect(&manager, SIGNAL(finished()), this, SLOT(downFinished()));
  4. private slots:
  5.     void downFinished();

  6. void MainWindow::downFinished()
  7. {
  8.     qDebug() << "down finished!";
  9. }

  10. void MainWindow::downFile()
  11. {
  12.     manager.append(QUrl("http://www.firemail.wang:8088/production_resource/chunhui/demo.dor"));
  13. }
复制代码
downloadmanager.zip (7.1 KB, 下载次数: 2)





欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3