/*
strUrl:下载图片时需要的url
strFilePath:下载图片的位置(/home/XXX/YYY.png)
*/
void ThorPromote::downloadFileFromUrl(QString strUrl, QString strFilePath)
{
qDebug() << strUrl << " " << strFilePath;
QFile file;
file.setFileName(strFilePath);
if(file.open(QIODevice::WriteOnly))
{
QByteArray byte = webhelper::InitGetRequest(strUrl, "downImgFromUrl");
file.write(byte);
file.close();
}
} //get
QByteArray webhelper::InitGetRequest(QString url, QString obj)
{
//循环拼接
QString baseUrl =url;
//构造请求
QNetworkRequest request;
request.setUrl(QUrl(baseUrl));
QNetworkAccessManager *manager = new QNetworkAccessManager();
// 发送请求
QNetworkReply *pReplay = manager->get(request);
//开启一个局部的事件循环,等待响应结束,退出
QEventLoop eventLoop;
QObject::connect(pReplay,SIGNAL(finished()), &eventLoop, SLOT(quit())); //add timeout deal
QTimer *tmpTimer = new QTimer();
connect(tmpTimer,SIGNAL(timeout()),&eventLoop, SLOT(quit()));
tmpTimer->setSingleShot(true);
tmpTimer->start();
eventLoop.exec();
tmpTimer->stop(); if (pReplay->error() == QNetworkReply::NoError)
{
qInfo() << QString("request %1 NoError").arg(obj);
}
else
{
qWarning()<<QString("request %1 handle errors here").arg(obj);
QVariant statusCodeV = pReplay->attribute(QNetworkRequest::HttpStatusCodeAttribute);
//statusCodeV是HTTP服务器的相应码,reply->error()是Qt定义的错误码,可以参考QT的文档
qWarning()<<QString("request %1 found error ....code: %2 %3").arg(obj).arg(statusCodeV.toInt()).arg((int)pReplay->error());
qWarning(qPrintable(pReplay->errorString()));
}
//获取响应信息
QByteArray bytes = pReplay->readAll();
return bytes;
}

QT通过url下载图片到本地的更多相关文章

  1. 根据URL下载图片到本地

    /// <summary> /// 下载图片 /// </summary> /// <param name="picUrl">图片Http地址& ...

  2. python实现通过URL下载图片到本地服务器

    import os import urllib.request image_url = 'http://img.jingtuitui.com/759fa20190115144450401.jpg' f ...

  3. JAVA 通过url下载图片保存到本地

    //java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { // 构造U ...

  4. java根据图片的url地址下载图片到本地

    package com.daojia.haobo.aicircle.util; import sun.misc.BASE64Encoder; import java.io.*; import java ...

  5. php下载图片到本地

    写了一天,就写了这么点代码,凑合用吧. #saveImage.php<?php /** * 图片下载方法,提供两种图片保存方式: * 1.按照图片自带的名称保存 * 2.按照自定义文件名保存 * ...

  6. 通过HttpURLConnection下载图片到本地--下载附件

    一.背景说明 现在我做的系统中,需要有一个下载附件的功能,其实就是下载图片到本地中.相应的图片保存在多媒体系统中,我们只能拿到它的资源地址(url),而不是真实的文件. 这里记录的是下载单个图片.下篇 ...

  7. C++根据图片url下载图片

    需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...

  8. 从url下载图片--java与python实现方式比较

    从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载  一.java的实现方式 首先读取图片 //方式一:直接根据url读取图片 priva ...

  9. java从网络中下载图片到本地

    public class imageDownload { public static void main(String[] args) { String url = "http://loca ...

随机推荐

  1. 简述Java变量和强制转换类型

    简述Java变量和强制转换类型 java变量 1. java变量 变量:顾名思义,就是在java执行程序过程中可以发生改变的量,就好比方程式中的未知数X一样. 变量的内存分配过程 int a ; // ...

  2. 入门者必看!SharePoint之CAML总结(实战)

    分享人:广州华软 无名 一. 前言 在SharePoint中,不支持直接操作数据库,但开发过程中,避免不了查询数据,那么,在SharePoint中如何查询数据? 当然是使用CAML语法. 二. 目录 ...

  3. vtigercrm特色功能介绍

    1.邮件跟踪 市场营销活动中,我们给客户发出了大量的电子邮件,这些邮件被客户阅读的情况你了解吗?vtiger CRM中独特的邮件跟踪功能,可以让你了解到邮件是否被客户浏览.浏览的次数和时间.通过客户的 ...

  4. 第三周LINUX学习笔记

    周期性任务丶find 文件查找:find命令 locate :在数据库中查找,非实时查找,精确度不高,查找速度快,模糊查找  /tmp/passwad/a.textfind:实时查找:速度慢  ,精确 ...

  5. Lenovo System x3650 设置管理接口地址

    1.开启服务器. 2.显示<F1> Setup提示后,按 F1.(此提示在屏幕上仅显示几秒钟.必须迅速按 F1.) 如果同时设置了开机密码和管理员密码,则必须输入管理员密码才能访问完整的 ...

  6. C 实现自己构建的数组

    #include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<stdbool.h>stru ...

  7. 微信小程序客服消息实时通知之最佳实践

    我们做微信小程序开发的都知道,只要在小程序页面中添加如下代码即可进入小程序的客服会话界面: <button open-type="contact" >联系我们</ ...

  8. AJAX跨域请求详解

    最近开始学习ajax,学习ajax必须得掌握的就是跨域请求,实际上在不同源的地址上发送请求就是跨域请求 域名地址的组成: http:// www . google : 8080 / script/jq ...

  9. 《深入理解 JVM 虚拟机》 --- 看书笔记

    1.JVM 内存溢出 1.堆溢出:堆要不断的创建对象,如果避免了垃圾回收来清除这些对象,就会产生JVM内存溢出.一般手段是通过内存映像分析工具对Dump出来的堆转储快照进行分析,分清楚到底是内存泄露还 ...

  10. 2. CMake 系列 - 编译多文件项目

    目录 1. 编译不使用第三方库的项目 1.1 项目目录结构 1.2 相关代码 1.3 编译 2. 编译使用第三方库的项目 2.1 项目目录结构 2.2 相关代码 2.3 编译 1. 编译不使用第三方库 ...