【问题标题】:How to get the file-name before downloading the file如何在下载文件之前获取文件名
【发布时间】:2013-09-27 13:32:38
【问题描述】:

我正在尝试从 http: 服务器下载二进制文件。我正在使用函数InternetOpenUrl() 然后InternetReadFile() 来下载文件。下载前可以知道文件名吗?

我现在获取文件名的方法是 - 下载完成后,使用 GetFileVersionInfo() 并从缓冲区中获取 OrginalFilename,然后将文件重命名为 OrginalFilename。

有没有其他方法可以在下载前获取文件名?

谢谢

维诺德

【问题讨论】:

    标签: c++ download filenames wininet


    【解决方案1】:

    看看HttpQueryInfo。查看Content-TypeContent-Disposition 标头。

    如果它只是返回例如,您可能必须使用 HTTP_QUERY_CUSTOM 来获取原始内容类型。 “文本/纯文本”。

    要获取所有标题(从而确定哪个标题包含您想要的信息),您可以使用HTTP_QUERY_RAW_HEADERS_CRLF

    【讨论】:

    • 嗨,Ben 感谢您的回复。我尝试下载 mozila firefox 并使用 HTTP_QUERY_RAW_HEADERS_CRLF 获取所有标头,但我无法从中获取文件名这些是我获得的标头 HTTP/1.1 200 OK 服务器:Apache X-Backend-Server:ftp4.dmz.scl3。 mozilla.com Content-Type: application/octet-stream Accept-Ranges: bytes Access-Control-Allow-Origin: * ETag: "d0525-44c40-4e7046b6c7cc0" Last-Modified: Mon, 23 Sep 2013 03:14:35 GMT内容长度:281664 X-Cache-Info:缓存过期:2013 年 9 月 28 日星期六 17:43:35 GMT 日期:2013 年 9 月 28 日星期六 06:03:37 GMT 连接:保持活动
    • 但是当我从网络浏览器下载时,文件名显示为 Firefox Setup Stub 24.0.exe
    • @VinodPaul 您是否查看过浏览器的 F12 工具网络选项卡以查看其中的标题?
    • 不,当我粘贴链接时,它突然开始下载。这是链接-download-installer.cdn.mozilla.net/pub/mozilla.org/firefox/…
    • @VinodPaul, 1) URL 是什么? 2)你为什么不尝试使用 F12 工具来查看服务器正在发送的标头?
    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多