在前面章节中我们讲述了关于qt显示网络图片的内容,比较简单,因为图片一般都比较小,下载到本地速度比较快,所以基本不需要什么特殊处理,本节我们主要针对http实现上传/下载进行详细的讲解与分享,包括:用户认证,实时获取下载大小、速度、剩余时间信息等。
首先看一下即将用到的公式:
文件剩余大小 = 文件总大小 - 文件已下载大小
平均速度 = 文件已下载大小 / 文件已下载大小所用的时间
瞬时速度 = 每秒下载的文件大小
剩余时间 = 文件剩余大小 / 瞬时速度
下面以下载为例,来实现一个文件下载管理器。
<a href="#%e7%ae%80%e8%bf%b0">简述</a>
<a href="#%e6%95%88%e6%9e%9c">效果</a>
<a href="#qnetworkaccessmanager">qnetworkaccessmanager</a>
<a href="#%e4%bd%bf%e7%94%a8">使用</a>
<a href="#%e8%bd%ac%e6%8d%a2">转换</a>
<a href="#%e6%80%bb%e7%bb%93">总结</a>

调用download()接口开始下载,关联downloadprogress信号和槽,可以实时获取下载大小、速度、剩余时间等信息。
下面是一些数据的格式转换,包括:字节转kb、mb、gb,速度转kb/s、mb/s、gb/s,秒转*d *h *m *s格式。
一般来说,我们下载文件到本地,需要设置一个临时文件名,这里我以时间戳为名称外加.tmp来命名,当然更严格的最好再加上随机数,这样基本就不会出现重名情况。
下载时,首先判断本地文件中是否存在与下载文件同名的文件,如果有则删除,开始下载。当下载完成时,需要对临时文件重新命名。
以上内容比较详细,介绍了如何进行用户认证,如何实时获取下载大小、速度、剩余时间等信息,后面我们会针对断点续传来进行详细讲解,敬请期待!