以下是我想用来QNetwork来发送图片文件的代码,但不知道为什么接受无法接受到文件和参数,哪位大虾能帮帮我解读一下??
QString fileName = "/home/test.jpg";
QFileInfo path(fileName);
QString openFilesPath = path.fileName();
QFile inputFile;
inputFile.setFileName(fileName);
inputFile.open(QIODevice::ReadOnly);
QString boundary,data,crlf,fileByteSize;
QByteArray dataToSend;
QNetworkAccessManager *manager =new QNetworkAccessManager();
boundary="7d44e178b0434";
crlf=0x0d;
crlf+=0x0a;
data=crlf+"--"+boundary+crlf; // start delimiter
data+="Content-Disposition: form-data; name=\"username\";"+crlf;
data+="Content-Type: text/plain; charset=US-ASCII"+crlf;
data+="Content-Transfer-Encoding:8bit"+crlf;
data+=crlf+"test"+crlf;
data+=crlf+"--"+boundary+crlf;
data+="Content-Disposition: form-data; name=\"pict\"; filename=\""+fileName+"\";"+crlf;
data+="Content-Type: image/jpeg;"+crlf;
data+="Content-Transfer-Encoding:8bit"+crlf;
data+=crlf+inputFile.readAll()+crlf;
data+="--"+boundary+"--"+crlf; // stop delimite
dataToSend.insert(0,data); // convert to byte array for request
QNetworkRequest request(QUrl("http://127.0.0.1/test/uploadimg.jsp"));
request.setRawHeader("Content-Type","multipart/form-data; boundary=7d44e178b0434");
request.setHeader(QNetworkRequest::ContentLengthHeader,dataToSend.size());
reply=manager->post(request,dataToSend); // perform post request
connect(reply,SIGNAL(finished()),SLOT(slotdone())); // reply finished - close file