开发环境:Ubuntu16.04 64bit +Qt5.8.0
在使用Qt5中的QNetworkAccessManager 类进行Http的发送数据时,可使用QByteArray 作为post(manager,QByteArray )的第二个参数进行发送文本类字符串。
但是发送图片文件时,并不能简单的把图片文件数据读出来,赋值给QByteArray 来进行发送,这样发送图片文件不会成功。
QNetworkReply *post(const QNetworkRequest &request, QIODevice *data);
QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data);
QNetworkReply *post(const QNetworkRequest &request, QHttpMultiPart *multiPart);
经查,post函数有3个。
所以使用新的类QHttpMultiPart,来对图片文件进行数据组装,在进行post发送。
//头文件h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtNetwork>
#include <QDebug>
#include <QString>
#include <QVariant>
#include <QHttpMultiPart>
#include <QFile>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT