3

我第一次使用powershell。我已經學會了如何使用webclient下載文件,使用下面的代碼。Webclient.DownloadFile().aspx文件無法打開

$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順便說一句,我設置$路徑到我的電腦上的一個目錄中的.PDF文件...因爲我讀了應該提供一個文件路徑,而不僅僅是一個目錄。

+0

是你的文件實際上下載的,或者是0字節?你可以將它與手動下載的文件進行比較嗎? –

+2

你也應該檢查下載的文件的內容,它可能是一個網頁的代碼重定向到實際的PDF –

回答

5

看起來你的腳本在大多數情況下都能正常工作。

我發現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)