2016-07-02 11 views
0

QNetworkAccessManager를 사용하여 파일을 업로드하려고하는데 오류가 발생합니다 (URL 전송 중 오류 - 서버가 응답하지 않음 : 잘못된 요청). 다음은 그러나 같은 일을해야이 파이썬 스크립트를 실행 내 코드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); 

입니다 작동합니다.

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"을 추가하여 문제가 해결되었습니다.