我有一个用于下载PDF文件的REST调用(POST)。 API调用以PDF文件的二进制版本响应。我想将文件保存在我的机器上作为.pdf。但是我收到了一个错误:
Out-File : Access to the path 'C:\Users\my-name\Documents\Tests' is denied. At C:\Users\my-name\Documents\Tests\TEST-WITH-LOOP.ps1:132 char:149 + ... questBody | Out-File -FilePath ("C:\Users\my-name\Documents\Tests + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], UnauthorizedAccessException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
POSTMAN的响应正文标题:
Content-Disposition →attachment; filename="Report-01_29_14-28.pdf" Content-Type →application/octet-stream DataServiceVersion →2.0 Date →Mon, 29 Jan 2018 21:51:31 GMT Date →Mon, 29 Jan 2018 21:51:31 GMT Server →Jetty(9.3.7.v20160115NeotysEdition.30) Transfer-Encoding →chunked
命令:
$DownloadReportResponse = Invoke-RestMethod -Method Post -Uri $DownloadReportUrl -ContentType "application/json" -Body $DownloadReportRequestBody |
Out-File -FilePath ("C:\Users\my-name\Documents\Tests") -Force
问题: 如何将其作为.pdf保存到我的机器中,或者可能包含在电子邮件的附件中?
答案 0 :(得分:2)
嗯,这个错误有点误导。您正在尝试将输出文件创建为C:\Users\my-name\Documents\Tests
,但该文件已作为目录存在,因此存在访问冲突。使用完整路径创建文件:
Invoke-RestMethod ... |
Out-File "C:\Users\my-name\Documents\Tests\Report-01_29_14-28.pdf"
答案 1 :(得分:0)
我在使用 Out-File
命令将输出重定向到文件时也有同样的问题。
我的命令是这样的:
Out-File -FilePath C:\MyFiles -InputObject "My text"
当我运行命令时出现此错误:
Out-File: Access to the path 'C:\MyFiles' is denied.
问题是我将输出(“My text
”)重定向到目录而不是文件。
我必须通过指定文件 (program.txt
) 以这种方式修改它:
Out-File -FilePath C:\MyFiles\program.txt -InputObject "My text"
这次效果很好。
仅此而已。
我希望这会有所帮助