void MySpaceView::sendloadFile(QString serverUrl, QString loadFileUrl,int id)
{
QFileInfo fileInfo(loadFileUrl);
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType,this);
QFile *file = new QFile(loadFileUrl);
QHttpPart dbFilePart;
QString requestFormat = QString::fromUtf8("form-data;name=%1;filename=%2;type = application/octet-stream")
.arg("file")
.arg(fileInfo.fileName());
dbFilePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(requestFormat));
bool bopen = file->open(QIODevice::ReadOnly);
dbFilePart.setBodyDevice(file);
QHttpPart dirID;
dirID.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"parentDirect\""));
QByteArray dirIDbyte = QString::number(id).toLatin1();
dirID.setBody(dirIDbyte);
QHttpPart sourceType;
sourceType.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"sourceType\""));
sourceType.setBody("CLOUD");
QHttpPart fileTypeP;
fileTypeP.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"fileType\""));
QByteArray fileType = QString::number(2401).toLatin1();
fileTypeP.setBody(fileType);
multiPart->append(dbFilePart);
multiPart->append(dirID);
multiPart->append(sourceType);
multiPart->append(fileTypeP);
QByteArray token = Login::getInstance()->getHeader();
QNetworkRequest request;
request.setUrl(serverUrl);
request.setRawHeader("Authorization", token);
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkReply *reply=manager->post(request,multiPart);
multiPart->setParent(reply);
// QByteArray token = Login::getInstance()->getHeader();
// QNetworkRequest request;
// request.setUrl(serverUrl);
// request.setRawHeader("Authorization", token);
// //request.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data");
// QNetworkAccessManager *manager =new QNetworkAccessManager();
// QNetworkReply *reply = manager->post(request,multiPart);
// multiPart->setParent(reply);
QObject::connect(reply, &QNetworkReply::readyRead, [=]() {
QByteArray array = reply->readAll();
qDebug()<<array;
//file->close();
});
QObject::connect(reply, &QNetworkReply::finished , [=]() {
});
}
Qt POST multipart/form-data 上传文件 多参数
于 2021-12-24 15:50:41 首次发布