manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl(strUrl));
qDebug()<<strUrl;
reply = manager->get(request); //发送请求
connect(reply, &QNetworkReply::readyRead, this, &DownLoadFiles::doProcessReadyRead); //可读
connect(reply, &QNetworkReply::finished, this, &DownLoadFiles::doProcessFinished); //结束
connect(reply, &QNetworkReply::downloadProgress, this, &DownLoadFiles::doProcessDownloadProgress); //大小
connect(reply, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &DownLoadFiles::doProcessError);//异常
下载写入文件
void DownLoadFiles::doProcessReadyRead() //读取并写入
{
while (!reply->atEnd())
{
qDebug()<<QString::fromLocal8Bit("写数据");
QByteArray ba = reply->readAll();
myfile->write(ba);
}
}
void DownLoadFiles::doProcessDownloadProgress(qint64 recv_total, qint64 all_total) //显示
{
emit sigupdateMoreinfo(QString::fromLocal8Bit("正在下载文件%1... %2/%3").arg(curDownfileName).arg(recv_total).arg(all_total));
emit sigUpdateProcessBar(recv_total,all_total);
}