• 5016阅读
  • 0回复

QT MIME multipart/form-data 发送寻求帮助 [复制链接]

上一主题 下一主题
离线dannycxh
 
只看楼主 倒序阅读 楼主  发表于: 2010-03-02
以下是我想用来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
快速回复
限100 字节
 
上一个 下一个