2016-07-02 10 views
0

QNetworkAccessManagerを使用してファイルをアップロードしようとしていますが、エラーが発生しました(エラー転送 - エラー:サーバーからの返信:以下は私のコードですQtを使用したマルチパートアップロード中にエラーが発生しました

QString name = "Simple.txt"; 
QString type = "text/plain; charset=utf-8"; 
QString uploadUrl = "myuploadUrl"; 

// setup the multipart request 
QString bound="---------------------------723690991551375881941828858"; 
QByteArray data(QString("--"+bound+"\r\n").toLatin1()); 

// write the file using standard method for multipart file upload 
data += "Content-Disposition: form-data; name=\"file\"; filename=\""+name.toLatin1()+"\"\r\n"; 
data += "Content-Type: "+type.toLatin1()+"\r\n\r\n"; 

data += "Hello, I am simple file"; 
data += "\r\n"; 
data += "--" + bound; 

qDebug() << data; 
// make the request with appropriate headers 
QNetworkRequest request(QUrl(uploadUrl)); 
request.setRawHeader(QByteArray("Content-Type"),QString("multipart/form-data; boundary=" + bound).toLatin1()); 
request.setRawHeader(QByteArray("Content-Length"), QString::number(data.length()).toLatin1()); 


QNetworkReply *reply = networkManager->post(request,data); 
QObject::connect(reply, &QNetworkReply::finished, this, FileUploader::requestFinished); 

しかし、このpythonスクリプトを実行すると、同じことをする必要があります。

import requests 
import json 

file_name = "Simple.txt" 
uploadUrl = "myUploadUrl"; 
resp = requests.post(uploadUrl, data=r["data"], files={"file": open(file_name, "rb")}) 
print (resp); 

答えて

0

この問題は、データの末尾にdata += "\r\n"を追加することで修正されました。

関連する問題