QT之HTTP下載獲取文件大小信息


在QT中,我們使用http下載時,希望在下載之前獲取到文件大小或者其它信息怎么辦?(PS:相關信息還需要服務器支持,如果你不清楚有哪些相關HTTP頭信息,可以通過抓包工具查看下。)沒關系,下面我教大家,上代碼。

void getFileInfoSize()
{
     QNetworkAccessManager manager;
     QNetworkRequest request;
     request.setUrl(qUrl);
     QNetworkReply* headReply = manager.head(request);
     connect(headReply, SIGNAL(finished()), this, SLOT(onGetFileInfoSize()));
}

void onGetFileInfoSize()
{
     QString fileSize;
     if (headReply->hasRawHeader(QString("Content-Length").toUtf8()))
     {
          fileSize=headReply->rawHeader(QString("Content-Length").toUtf8());
     }

     //這里fileSize就是我們想要的文件大小,或者其它HTTP頭信息,都可以根據類似處理。如下圖通過抓包工具獲取的HTTP頭信息。

}

比如我還想知道文件名稱,可以這樣:(PS:再次強調,這里需要你的服務器是否支持)很顯然通過抓包工具可以看到,我這里是支持獲取文件的名稱。

QString fileName;

if (headReply->hasRawHeader(QString("filename").toUtf8()))
{
      fileName= headReply->rawHeader(QString("filename").toUtf8());

}

通過上面的例子,不知各位是否理解了,沒理解的,可以留言哦,我看到留言后,會回復的。微笑如果有講得不對的地方,大家指出來哈!一起分享一起交流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM