下载原始文件名的文件

时间:2012-11-02 16:39:26

标签: vba excel-vba winhttprequest excel

使用vba和excel,我想从网址下载一个文件,我不知道原始文件名是什么。 使用URLDownloadToFile或WinHttpRequest等其他方法,您需要命名要下载的文件。我想用原始文件名保存,就像通过导航到Internet Explorer上的URL一样。

我的网址示例: https://mysite.com/PDF/CreatePDFforProcess.aspx?ID=6370947

在Internet Explorer上

,这将打开一个另存为窗口,默认文件名为sugestion。

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以从响应HTTP标头

获取文件类型和文件名(有时)

示例,我通过名为xhr的XMLHttpRequest对象获取文件:

debug.print xhr.getResponseHeader("Content-Type")
>application/pdf
debug.print xhr.getResponseHeader("Content-Disposition")
>attachment; filename="test.pdf"

您不应期望永远填充Content-Disposition。由于您上传了一个输入文件,因此根据输入文件名称的某些变体来命名响应文件可能更有意义。