के साथ पोस्ट का उपयोग कर सर्वर पर बाइनरी फ़ाइल भेजें क्यूटी में मुझे पोस्ट का उपयोग कर वेबसाइट पर एक स्क्लाइट फ़ाइल (बाइनरी फ़ाइल) भेजने की आवश्यकता है। तो मैं क्या करता हूं कि मैं फ़ाइल खोलता हूं और इसकी सामग्री को QByteArray में पढ़ने की कोशिश करता हूं कि QNetworkRequest की सहायता से मैं सर्वर को भेज सकता हूं। मैं अनुरोध को संभाल सकता हूं क्योंकि फ़ाइल सर्वर पर भेजी जाती है लेकिन फ़ाइल बस खाली है। क्या मैं sqlite फ़ाइल की सामग्री को गलत पढ़ रहा हूं? (मुझे पता है कि फाइल एक्स्टिस्ट) क्या आप मेरे कोड के साथ कुछ भी गलत देख सकते हैं?क्यूटी
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
स्वीकृत उत्तर आपके उत्तर में बताए गए कारणों के लिए गलत है। इसे क्लीयर करने के लिए शुक्रिया। –