Qt下载文件

头文件定义:

QFile *avatorFile;//文件指针
QNetworkReply *avatorReply;
QNetworkAccessManager *avatorManager;
void httpDowload();
void httpDowloadFinished();
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
//下载文件之前先在本地创建一个文件 
QDir file;//文件夹
QString fileStr=QString("text/%1/").arg(text);
QString fileName=fileStr+"text.jpg";
//判断文件夹是否存在 不存在创建
if(!file.exists(fileStr)){
   file.mkpath(fileStr);
}
avatorFile=new QFile(fileName);
//判断文件是否可写入 不可写删除 指针赋值0
if(!avatorFile->open(QIODevice::WriteOnly)){
   delete avatorFile;
   avatorFile=0;
   return;
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
//开始请求 下载文件
QUrl  serviceUrl = QUrl("http://www.baidu.com");
avatorManager = new QNetworkAccessManager(this);                                
//get方式请求 如需加密用post
avatorReply=avatorManager->get(QNetworkRequest(serviceUrl));
            connect(avatorReply,SIGNAL(readyRead()),this,SLOT(httpDowload()));//数据写入
    connect(avatorReply,SIGNAL(finished()),this,SLOT(httpDowloadFinished()));//请求完成
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
//将下载的文件数据写入到文件指针中
void HttpProvider::httpDowload(){
    if(avatorFile){
         avatorFile->write(avatorReply->readAll());
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
//请求完成 文件下载成功 
void HttpProvider::httpDowloadClientFinished(){
    //刷新文件
    avatorFile->flush();
    avatorFile->close();
    avatorFile=0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值