上传参数如下:
核心代码:
void HttpReq::upload(QString jsonfile)
{
if(!QFile::exists(jsonfile))
return;
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart textPart;
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"customerId\""));
textPart.setBody(readConfig("customerId").toString().toLatin1());
multiPart->append(textPart);
QString filepath = jsonfile;
QHttpPart headerPart;
headerPart.setHeader(QNetworkRequest::ContentDispositionHeader, QString("form-data; name=\"file\";filename=\"%1\"").arg(jsonfile));
if(file == NULL){
file = new QFile(filepath);
}
if(!file->open(QIODevice::ReadOnly)){
return;
}
headerPart.setBodyDevice(file);
file->setParent(multiPart);
multiPart->append(headerPart);
QNetworkRequest request;
request.setUrl(QUrl(mUrlRootUpLoad));
m_netReply = m_manager->post(request, multiPart);
connect(m_netReply,SIGNAL(readyRead()),this,SLOT(uploadResult()));
connect(m_netReply,SIGNAL(finished()),this,SLOT(ReplyFinished()));
connect(m_netReply,SIGNAL(uploadProgress(qint64,qint64)),this,SLOT(ReplyUploadProgress(qint64,qint64)));
connect(m_netReply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(onReplyError(QNetworkReply::NetworkError)));