• 5058阅读
  • 1回复

http post 图片 [复制链接]

上一主题 下一主题
离线hover_sky
 

只看楼主 倒序阅读 楼主  发表于: 2009-10-26
http post 图片
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
  1. bool HttpGet::upLoad_file()
  2. {
  3.     //QByteArray dataToSend, line;
  4.     //QString bound;
  5. QString bound;
  6. QString data;
  7. QString crlf;
  8. QByteArray dataToSend;
  9. bound = "---------------------------7d935033608e2";
  10. crlf = 0x0d;
  11. crlf += 0x0a;
  12. //头
  13.     QHttpRequestHeader header("POST", "/action.php");
  14.     header.setValue("Host", "192.168.0.103");
  15.     header.setContentType(tr("multipart/form-data; boundary=") + bound);
  16.     header.addValue("Connection","Keep-Alive");
  17.     http.setHost("192.168.0.103");
  18. //返回值
  19.     file.setFileName("results.html");
  20.     file.open(QIODevice::WriteOnly | QIODevice::Truncate);
  21.     qDebug()<<"hi"<<endl;
  22.     QString filename="hello.jpg";
  23.     QByteArray datagram;
  24.     QDataStream out(&datagram,QIODevice::WriteOnly);
  25.     QImage image(":/hello.jpg","JPEG");
  26.     out<<image;
  27.   
  28.     QString temp(datagram);
  29. //组装数据
  30.     data = "--" + bound + crlf + "Content-Disposition: form-data; name=\"fupload\"; ";
  31.     data += "filename="+filename;
  32.     data += crlf + "Content-Type: image/jpeg" + crlf + crlf;//if you want to send binary file use "Content-Type: Application/Octet"
  33.    data += temp;
  34.     data+= crlf + "--" + bound + "--" + crlf;
  35.     dataToSend.insert(0,data);
  36.     qDebug()<<dataToSend<<endl;
  37.     mHttpReqId=http.request(header, dataToSend, &file);
  38.     return true;
  39. }


运行发现,提交的图片大小为0.

请大伙帮忙看看哪里有问题,谢谢
离线hover_sky

只看该作者 1楼 发表于: 2009-10-26
    QFile upFile;
    upFile.setFileName(filename);
     if ( upFile.open(QIODevice::ReadOnly ) ) {
            datagram=upFile.readAll();
     }


解决,要直接用IO read
快速回复
限100 字节
 
上一个 下一个