Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1958|回复: 0
打印 上一主题 下一主题

Qt从url下载文件

[复制链接]

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
跳转到指定楼层
楼主
发表于 2018-4-12 16:48:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-23 08:22 , Processed in 0.060919 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表