读取使用QNetworkAccessManager下载的文件的最终名称

时间:2009-07-30 19:32:14

标签: qt

使用QNetworkAccessManager(Qt 4.5.2)下载文件时,原始URL可能会重定向到包含下载文件实名的新文件。如何读取此文件名?

答案应该是QUrl QNetworkReply :: url()const,因为文档说: 请注意,URL可能与原始请求的URL不同。

不幸的是,它会返回原始网址而不是新网址。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您必须手动解析Content-Disposition标头(reply->rawHeader("Content-Disposition"))才能从中获取文件名。

答案 1 :(得分:1)

尝试通过以下方式从响应标头中获取它:

QNetworkRequest::header(QNetworkRequest::LocationHeader)

该文档声明QNetworkRequest :: LocationHeader:

  

对应于HTTP位置   标题并包含表示的URL   数据的实际位置,   包括目的地URL以防万一   重定向。

QNetworkRequest::header documentation

QNetworkRequest::LocationHeader documentation