码迷,mamicode.com
首页 > Web开发 > 详细

Qt通过Http上传文件(路过)

时间:2016-02-08 21:17:50      阅读:1189      评论:0      收藏:0      [点我收藏+]

标签:

web端:

 

[php] view plain copy
 
 print?技术分享技术分享
  1. <?php  
  2.  $c = $GLOBALS[‘HTTP_RAW_POST_DATA‘];  
  3.  $n = $_GET["filename"];  
  4.  $fp = fopen($n,‘w+‘);  
  5.  fwrite($fp, $c, strlen($c));  
  6.  fclose($fp);  
  7. ?>  

 

QT端:

.h文件:

[cpp] view plain copy
 
 print?技术分享技术分享
  1. private:  
  2.   QNetworkAccessManager *_uploadManager;  
  3.   QNetworkReply *_reply;  
  4.   char* m_buf;  
  5. private slots:  
  6.   void replyFinished( QNetworkReply* );  
  7.   void upLoadError(QNetworkReply::NetworkError errorCode);  
  8.   void OnUploadProgress( qint64 bytesSent, qint64 bytesTotal );  


.cpp文件:

[cpp] view plain copy
 
 print?技术分享技术分享
  1. _uploadManager = new QNetworkAccessManager(this);  
  2.   connect(_uploadManager,SIGNAL(finished(QNetworkReply*)),SLOT(replyFinished(QNetworkReply*)));  
  3.   m_buf = NULL;  
  4.   
  5.   QFile file("d:/a.jpg");  
  6.   file.open(QIODevice::ReadOnly);  
  7.   int file_len = file.size();  
  8.   QDataStream in(&file);  
  9.   m_buf = new char[file_len];  
  10.   in.readRawData( m_buf, file_len);  
  11.   file.close();  
  12.   
  13.   QNetworkRequest request(QUrl(tr(http://localhost/up.php?act=up&filename=a.jpg)));  
  14.   request.setHeader(QNetworkRequest::ContentTypeHeader, "application/octet-stream");  
  15.   QByteArray arr = QByteArray(m_buf, file_len);  
  16.   _reply = _uploadManager->post(request , arr);  
  17.   connect(_reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(upLoadError(QNetworkReply::NetworkError)));  
  18.   connect(_reply, SIGNAL(uploadProgress ( qint64 ,qint64 )), this, SLOT( OnUploadProgress(qint64 ,qint64 )));  


 

 
 http://blog.csdn.net/songjinshi/article/details/11806773

Qt通过Http上传文件(路过)

标签:

原文地址:http://www.cnblogs.com/findumars/p/5185116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!