Ich verwende QT, um eine Datei auf einen Webserver hochzuladen. Der Web-Server akzeptiert Dateien mit der folgenden Anforderung:QT hochladen (PUT) eine Datei
curl -X POST -H 'Content-Type:multipart/form-data'
-H 'Authorization: Token <token>'
-F '[email protected]_to_upload.txt'
https://some.web.site/api/v2/files/contents/
verwende ich etwa so aus QT, das gleiche zu erreichen, um zu versuchen ruft:
QHttpMultiPart multiPart(QHttpMultiPart::FormDataType);
QHttpPart filePart;
file.open(QIODevice::ReadOnly)
filePart.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data");
filePart.setBodyDevice(file);
multiPart.append(filePart);
QNetworkAccessManager mgr;
QNetworkRequest req(url);
req.setRawHeader("Authorization", ("Token <token>").data());
QNetworkReply * reply(mgr.put(req, &multiPart));
Gerade jetzt ist das, was ich von dem Server erhalten:
Kann jemand aufhören, was der QT Teil im Vergleich zum Curl Befehl fehlt? Ich würde raten, dass qt einen Schritt hinter den Kulissen fehlt. Ich bevorzuge eine Lösung, bei der ich die gesamte Anfrage nicht manuell zusammenstellen muss.
Ich fügte hinzu die neuen Teile, aber immer noch nicht gehen. Ideen? – Mac
@Mac Uhr auf meine bearbeitete Antwort. – Evgeny
geändert, um immer noch das gleiche zu schreiben ... Ich werde versuchen, morgen den vollen Code zu posten – Mac