Сохранить файл из возвращаемого значения из invoke-webrequest

Я пытаюсь загрузить файл с веб-сайта с помощью powershell и сохранить его в каталоге C:\temp с его исходным именем.

если я попробую Invoke-WebRequest -Uri ("uri to file download") -Method Get с параметром -OutFile, я смогу сохранить файл, но не с исходным именем. если я сохраню возвращаемое значение WebRequest в параметре, я найду исходное имя файла в $r.Headers.'Content-Disposition', но я не знаю, как вывести файл из этой переменной.

Может кто-нибудь помочь мне ?

С уважением Флориан


person ExeqZ    schedule 20.11.2020    source источник
comment
У вас есть Ури, чтобы поделиться? Я не помню, чтобы видел Content-Disposition в заголовках WebRequest   -  person CFou    schedule 20.11.2020
comment
@CFou, к сожалению, я не могу указать URL, потому что это внутренний домен. и я тоже не верил, но мне действительно нужно получить обычное имя файла ^^   -  person ExeqZ    schedule 23.11.2020


Ответы (1)


Я только что создал быстрый фрагмент, который должен вам помочь. К сожалению, я не мог проверить это без действительного URL :(

# Vars
$url = ""
$outputDir = $PSScriptRoot

# Invoke request
$result = Invoke-WebRequest -Method GET -Uri $url

# Extract name
$contentDisposition = $result.Headers.'Content-Disposition'
$fileName = $contentDisposition.Split("=")[1].Replace("`"","")
$path = Join-Path $outputDir $fileName

# Write into file
$file = [System.IO.FileStream]::new($path, [System.IO.FileMode]::Create)
$file.write($result.Content, 0, $result.RawContentLength)
$file.close()
person vitalragaz    schedule 20.11.2020