MCPcopy Create free account
hub / github.com/altairwei/WizNotePlus / uploadResources

Function uploadResources

src/sync/WizKMServer.cpp:1202–1272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1200};
1201
1202bool uploadResources(WizKMDatabaseServer& server, const QString& url, const QString& key, const QString& kbGuid, const QString& docGuid, const std::vector<WIZRESOURCEDATA>& files, bool isLast, Json::Value& res)
1203{
1204 QString objType = "resource";
1205 //
1206 QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
1207 //
1208 QHttpPart keyPart;
1209 keyPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"key\""));
1210 keyPart.setBody(key.toUtf8());
1211
1212 QHttpPart kbGuidPart;
1213 kbGuidPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"kbGuid\""));
1214 kbGuidPart.setBody(kbGuid.toUtf8());
1215
1216 QHttpPart docGuidPart;
1217 docGuidPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"docGuid\""));
1218 docGuidPart.setBody(docGuid.toUtf8());
1219
1220 QHttpPart objTypePart;
1221 objTypePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"objType\""));
1222 objTypePart.setBody(objType.toUtf8());
1223
1224 QHttpPart isLastPart;
1225 isLastPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"isLast\""));
1226 isLastPart.setBody(isLast ? "1" : "0");
1227
1228 multiPart->append(keyPart);
1229 multiPart->append(kbGuidPart);
1230 multiPart->append(docGuidPart);
1231 multiPart->append(objTypePart);
1232 multiPart->append(isLastPart);
1233 //
1234 for (auto file: files)
1235 {
1236 QHttpPart filePart;
1237 QString filePartHeader = QString("form-data; name=\"data\"; filename=\"%1\"").arg(file.name);
1238 filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(filePartHeader));
1239 filePart.setBody(file.data);
1240 multiPart->append(filePart);
1241 }
1242 //
1243 QNetworkRequest request(url);
1244
1245 QNetworkAccessManager networkManager;
1246 QNetworkReply* reply = networkManager.post(request, multiPart);
1247 multiPart->setParent(reply); // delete the multiPart with the reply
1248 //
1249 WizAutoTimeOutEventLoop loop(reply);
1250 loop.setTimeoutWaitSeconds(NETWORK_TIMEOUT_SECS);
1251 loop.exec();
1252 //
1253 QNetworkReply::NetworkError err = loop.error();
1254 if (err != QNetworkReply::NoError)
1255 {
1256 TOLOG2("Failed to exec json request, network error=%1, message=%2", WizIntToStr(err), loop.errorString());
1257 return false;
1258 }
1259 //

Callers 1

document_postDataNewMethod · 0.85

Calls 9

WizIntToStrFunction · 0.85
postMethod · 0.80
setTimeoutWaitSecondsMethod · 0.80
errorMethod · 0.80
resultMethod · 0.80
setLastErrorMethod · 0.80
QStringClass · 0.70
execMethod · 0.45
errorStringMethod · 0.45

Tested by

no test coverage detected