Qt에서 게시물을 사용하여 웹 사이트에 sqlite 파일 (바이너리 파일)을 보내야합니다. 그래서 내가하는 일은 파일을 열고 QNetworkRequest의 도움으로 서버로 보낼 수있는 QByteArray로 파일의 내용을 읽는 것입니다. 파일이 서버로 전송되었지만 파일이 비어있는 동안 요청을 처리 할 수 있습니다. sqlite 파일의 내용을 잘못 읽었습니까? (나는 파일 excist를 안다) 당신은 나의 코드에 문제가있는 것을 볼 수 있니?Qt로 게시물을 사용하여 서버에 바이너리 파일 보내기
QByteArray data;
QFile file("database.sqlite");
if (!file.open(QIODevice::ReadWrite))
return;
QDataStream in(&file);
in.setVersion(QDataStream::Qt_4_6);
in >> data ;
QString boundary;
QByteArray dataToSend; // byte array to be sent in POST
boundary="-----------------------------7d935033608e2";
QString body = "\r\n--" + boundary + "\r\n";
body += "Content-Disposition: form-data; name=\"database\"; filename=\"database.sqlite\"\r\n";
body += "Content-Type: application/octet-stream\r\n\r\n";
body += data;
body += "\r\n--" + boundary + "--\r\n";
dataToSend = body.toAscii();
QNetworkAccessManager *networkAccessManager = new QNetworkAccessManager(this);
QNetworkRequest request(QUrl("http://www.mydomain.com/upload.aspx"));
request.setRawHeader("Content-Type","multipart/form-data; boundary=-----------------------------7d935033608e2");
request.setHeader(QNetworkRequest::ContentLengthHeader,dataToSend.size());
connect(networkAccessManager, SIGNAL(finished(QNetworkReply*)),this, SLOT(sendReportToServerReply(QNetworkReply*)));
QNetworkReply *reply = networkAccessManager->post(request,dataToSend); // perform POST request
답변에 설명 된 이유 때문에 허용 된 대답이 잘못되었습니다. 그것을 지워 줘서 고마워. –