首页 > 其他分享 >如何使用 qt network 库模拟表单文件上传?

如何使用 qt network 库模拟表单文件上传?

时间:2022-12-08 10:12:35浏览次数:56  
标签:qt url image imagePart 表单 ba multiPart query network

#include <QCoreApplication>
#include <QImage>

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);

    // [1] 准备图像二进制数据
    QImage image = QImage(R"(Snipaste_2022-01-19_16-39-23.png)");
    QByteArray ba;
    QBuffer buffer(&ba);
    buffer.open(QIODevice::WriteOnly);
    image.save(&buffer, "PNG");  // writes image into ba in PNG format

    // [2] 添加请求主体数据
    QHttpMultiPart multiPart(QHttpMultiPart::FormDataType);
    QHttpPart imagePart;
    imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));
    imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"upload\";filename=\"image.png\""));
    imagePart.setBody(ba);
    multiPart.append(imagePart);

    // [3] POST 请求
    QNetworkAccessManager handle;
    QNetworkRequest request;

    // [3][1] URL
    QUrl url;
    url.setUrl(R"(http://127.0.0.1:8080/upload)");

    // [3][2] Param
    QUrlQuery query;
    query.addQueryItem("deviceId", "001");
    query.addQueryItem("no", "sz");
    url.setQuery(query);

    request.setUrl(url);

    // [3][3] POST
    auto reply = handle.post(request, &multiPart);

    // [4] Result
    QObject::connect(reply, &QNetworkReply::finished, &a, [reply]() { qDebug() << reply->readAll(); });

    return a.exec();
}

标签:qt,url,image,imagePart,表单,ba,multiPart,query,network
From: https://www.cnblogs.com/cheungxiongwei/p/16965304.html

相关文章

  • 钉钉开发之根据流程码获取流程表单schema
    一、环境:1、钉钉oa审批流程中,已有“出差审批”流程,流程码为:PROC-48E207E5-EB8B-457C-BC3D-86CD5E5A50B32、开发环境:IDEA二、代码1、获取tokenpackagesfccl.api;imp......
  • element-ui 表单组件的简单封装
    背景在管理系统中我们需要经常使用表单组件来收集用户的一些数据,如果按照官网的示例一个个表单项去填写不仅代码会变得很长而且麻烦,所以我们有必要去对组件进行再次的封装......
  • JS操作form表单倒计时自动提交
     只需要注意表单的id<formid="frm"action="http://www.baidu.com">考试还剩余<divid="time"></div></form><script>vartimes=45*60;//剩余时间,单位......
  • Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=
    今天在hardhat中部署合约时碰到了这个问题,算是一个粗心的问题吧,特此记录一下,如图:出现该问题的原因竟然是配置网络url时应该是``,而我用成了'',导致一直连不上......
  • Ubuntu命令安装默认支持的Qt5版本
    1.前置依赖sudoaptinstallbuild-essentialsudoaptinstallcmake2.只安装默认的Qt模块#安装默认SDK#Ubuntu18.04中默认安装版本是Qt5.9.5sudoaptinstall......
  • 关于JQuery validate表单校验插件对级联下拉框的校验问题
         今天在使用JQueryvalidate表单校验插件时,遇见了一个非常诡异的问题了。在此记录一下:     问题描述:               ......
  • RFN-Nest_ An end-to-end residual fusion network for infrared and visible images
    RFN-Nest2021研究图像融合分为三步:特征提取,融合策略,图像重建。当前端到端的图像融合方法:基于GAN的、还有本文提出的研究背景:当前设计的融合策略在为特定任务生成融合......
  • 自定义的Qt轮播图控件
    该控件是模仿了一个名叫QCoolPage的开源项目里的轮播图控件,但是实现方式跟它的完全不同。QCoolPage里是用QPushButton和QLabel加上自定义styleSheet实现的;而我是用自定义控......
  • Networkx用法例子总结
    获得k-hop子图subgraph=nx.ego_graph(G,node,radius=k)neighbors=list(subgraph.nodes())可视化并对目标节点高亮#generatenodepositions:pos=nx.spring......
  • 开源web自定义表单有哪几个特点?
    目前,市场正在蓬勃发展中,作为企业,采用传统表单的弊端也逐渐显现出来,面临比较大的问题就是办公效率得不到提升。在各行各业正积极筹备朝着数字化方向转型的背景下,采用开源web......