2009-07-30 3 views
3

Lors du téléchargement d'un fichier à l'aide de QNetworkAccessManager (Qt 4.5.2), il est possible que l'URL d'origine redirige vers un nouveau fichier contenant le nom réel du fichier téléchargé. Comment ce nom de fichier peut-il être lu?Lecture du nom final d'un fichier téléchargé à l'aide de QNetworkAccessManager

La réponse doit être QUrl QNetworkReply :: url() const comme indiqué dans la documentation: Notez que l'URL peut être différente de celle de la demande d'origine.

Malheureusement, il renvoie l'URL d'origine et non le nouveau.

Une idée?

Répondre

1

Essayez d'obtenir à partir de l'en-tête de réponse via:

QNetworkRequest::header(QNetworkRequest::LocationHeader) 

Les Etats Documenation que QNetworkRequest :: LocationHeader:

correspond à l'en-tête HTTP Localisation et contient une URL représentant le réel emplacement des données, incluant l'URL de destination dans le cas de redirections.

QNetworkRequest::header documentation.

QNetworkRequest::LocationHeader documentation.

+0

tête vide :(... la rawHeader fonctionne OK – Das

3

Vous devrez analyser manuellement l'en-tête Content-Disposition (reply->rawHeader("Content-Disposition")) afin d'obtenir un nom de fichier.

+0

Oui, cela fonctionne Renvoie le nom du fichier que:.. pièce jointe, filename = « afile.zip » Merci – Das

+0

@Das Si cette réponse permet de résoudre! votre problème, vous devriez le marquer comme la réponse. –