From afbe278155e7eaa84e09c1b93a04b1d24834c132 Mon Sep 17 00:00:00 2001 From: ArsenArsen Date: Thu, 20 Jul 2017 01:03:56 +0200 Subject: [PATCH] Fix a bug with multipart and return parsing --- io/ioutils.cpp | 2 +- uploaders/customuploader.cpp | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/io/ioutils.cpp b/io/ioutils.cpp index 447fcb9..5753178 100644 --- a/io/ioutils.cpp +++ b/io/ioutils.cpp @@ -12,7 +12,7 @@ void ioutils::postMultipart(QUrl target, std::function callback) { QNetworkRequest req(target); for (auto header : headers) { - req.setRawHeader(header.first.toUtf8(), header.second.toUtf8()); + if (header.first.toLower() != "content-type") req.setRawHeader(header.first.toUtf8(), header.second.toUtf8()); } QNetworkReply *reply = networkManager.post(req, body); QObject::connect(reply, &QNetworkReply::finished, [reply, callback] { diff --git a/uploaders/customuploader.cpp b/uploaders/customuploader.cpp index 555b59b..d481d19 100644 --- a/uploaders/customuploader.cpp +++ b/uploaders/customuploader.cpp @@ -182,12 +182,6 @@ QString parsePathspec(QJsonDocument &response, QString &pathspec) { return QString::fromUtf8(response.toJson()); } QJsonValue val = o[fields.at(0)]; - if (val.isUndefined() || val.isNull()) - return ""; - else if (val.isString()) - return val.toString(); - else if (!val.isObject()) - return QString::fromUtf8(QJsonDocument::fromVariant(val.toVariant()).toJson()); for (int i = 1; i < fields.size(); i++) { if (val.isUndefined() || val.isNull()) return ""; @@ -325,7 +319,8 @@ void CustomUploader::doUpload(QByteArray imgData, QString format) { if (str.startsWith("/") && str.endsWith("/")) str = substituteArgs(str, format); part.setRawHeader(headerVal.toLatin1(), str); } else if (headerVal != "body") - cdh += "; " + headerVal + "=\"" + valo[headerVal].toString().replace("\"", "\\\"") + "\""; + cdh += "; " + headerVal + "=\"" + + substituteArgs(valo[headerVal].toString().toUtf8(), format).replace("\"", "\\\"") + "\""; } part.setHeader(QNetworkRequest::ContentDispositionHeader, cdh); multipart->append(part); @@ -344,7 +339,7 @@ void CustomUploader::doUpload(QByteArray imgData, QString format) { [&, buffersToDelete, arraysToDelete](QJsonDocument result, QByteArray data, QNetworkReply *) { for (auto buffer : buffersToDelete) buffer->deleteLater(); for (auto arr : arraysToDelete) delete arr; - parseResult(result, data, returnPathspec, name(), urlPrepend, urlPrepend); + parseResult(result, data, returnPathspec, name(), urlPrepend, urlAppend); }); } break; @@ -365,7 +360,7 @@ void CustomUploader::doUpload(QByteArray imgData, QString format) { }); } else { ioutils::postJson(target, h, data, [&](QJsonDocument result, QByteArray data, QNetworkReply *) { - parseResult(result, data, returnPathspec, name(), urlPrepend, urlPrepend); + parseResult(result, data, returnPathspec, name(), urlPrepend, urlAppend); }); } break;