Webclient.DownloadFile()。aspx文件无法打开

时间:2012-10-19 15:28:03

标签: powershell webclient-download downloadfile .aspxauth aspxcombobox

我第一次使用PowerShell。我已经学会了如何使用webclient下载文件,使用以下代码。

$client = New-Object System.NET.Webclient
$client.DownloadFile( $url, $path )

这似乎很适合我最终要做的事情,即一次从网页下载多个文件。我在一个站点上尝试了这个,该站点的文件格式为.pfva文件,这些文件以PDF格式打开。没问题。这也是受密码保护的网站。

所以转移到我实际想要使用它的网站。同样,一个需要登录的站点,虽然我只是在我的浏览器上登录然后运行webclient。可能为什么我不必在命令脚本中传递身份验证....

此网站的文件格式为.aspx文件。它们将作为PDF文件打开。我只需单击该文件,保存或打开,它就可以自然地作为PDF文件工作。但是当我使用webclient.download文件时,它会下载到正确的位置......但是在尝试打开它时会出错。

“Adobe无法打开文件。它没有正确编码”......沿着这些方向发展。我现在无法得到这个消息因为我在工作。下载的URL采用以下格式.....

https://www.WebsiteABC.com/ShowDocument.aspx?DocPath=%7e%5cDocument%5cb75c6093-697a-4e59-bc26-fa2eb24f57f7%5cAUTHORIZATION.PDF

为什么不打开!?!有没有解决的办法。任何帮助,将不胜感激。谢谢!。

OH顺便说一句,我将$ path设置为计算机上某个目录中的.PDF文件...因为我读到应该提供一个文件路径,而不仅仅是一个目录。

1 个答案:

答案 0 :(得分:6)

在大多数情况下,您的脚本看起来很有用。

我找到了this页面,告诉用户代理HTTP标头字段对服务器很重要,所以试试这个:

$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;)"
$url = "https://www.adobe.com/enterprise/pdfs/pdfarchiving.pdf"
$path = "c:\test.pdf"

$client = New-Object System.NET.Webclient
$client.Headers.Add("user-agent", $userAgent)
$client.DownloadFile( $url, $path )