关于基于qt的http上传文件-QHttpPart和QNetworkRequest中setHeader的区别

一. 知识点:setHeader的区别

二. 详解 :如下图,在文件上传中,QHttpPartsetHeader是设置form-data中的数据的。

      需要注意的是:QHttpPart的name表示参数名,filename表示参数值,而参数值对应的数据用setBodyDevice或setBody来对应,故QHttpPart在多个文件上传时需要多个。

      name和filename是成对出现的,type指定二进制方式上传

      QHttpPart 是QHttpMutilPart的数据类型,可以有多个,用append方法添加上。

      如:有一个文件就有一个QHttpPart。

三. 运用  : 

以下代码对应以下截图

QString requestFormat = QString::fromLocal8Bit("form-data;name=file;filename=943xxxx.jpg;type=application/octet-stream");

QHttpPart mImagePart;

mImagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(requestFormat));

mImagePart.setBodyDevice(&mFile);

multiPart->append(mImagePart);//QHttpMutli multiPart
//发送
QNetworkReply* _mReply = nam.post(*request_turnSave, multiPart);

 

......

我是截图

 

我是截图

 

posted @ 2023-04-20 10:56  Labant  阅读(891)  评论(0)    收藏  举报