You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Invoke-RestMethod上传文件提示路径访问被拒绝

问题原因
  • 你遇到的「路径访问被拒绝」是本地PowerShell抛出的文件系统错误,和你提到的服务端账号写入权限没有任何关系,服务端返回的权限错误会以HTTP响应体的形式返回,不会直接提示本地路径访问拒绝。
  • 触发该错误的核心是Windows PowerShell(5.1及以下内置版本)Invoke-RestMethod的-Infile参数存在路径解析缺陷:如果传入的是相对路径、带空格/特殊字符的路径,参数无法正确定位目标文件,甚至会错误尝试访问当前会话上下文下受系统保护的路径,直接触发本地权限拦截。你提到的「直接输入文件名可正常运行」,本质是手动输入完整绝对路径时绕开了这个解析bug。
  • 额外注意:直接搭配-Infile发送POST请求时,PowerShell默认不会将请求编码为multipart/form-data格式,就算路径问题解决,服务端也无法按文件上传规则解析请求,属于用法错误。
解决方法
  • 修复本地路径问题:永远向-Infile传入文件的完整绝对路径,不要使用相对路径。上传前可以先通过命令解析出目标文件的标准绝对路径,避免解析错误:
    $uploadFilePath = (Resolve-Path "你本地待上传的文件路径").Path
    
    同时确认当前运行PowerShell的用户账号对该文件有读取权限,不要把待上传文件放在C盘根目录、Program Files等受UAC保护的系统目录下,避免触发本地权限拦截。
  • 显式构造标准multipart/form-data格式请求,不要依赖-Infile的默认请求格式:
    如果你用的是PowerShell 6.1及以上版本(PowerShell 7+),可以直接用原生-Form参数构造表单,写法最简单:
    $requestUri = "替换为你的上传接口地址"
    $uploadFilePath = (Resolve-Path "待上传文件的本地路径").Path
    $formData = @{
        # 接口要求的其他普通表单字段按实际需求填写,例如:
        # remark = "测试文件上传"
        uploadFile = Get-Item $uploadFilePath
    }
    Invoke-RestMethod -Uri $requestUri -Method Post -Form $formData
    
    如果你用的是系统内置的Windows PowerShell 5.1,需要手动构造multipart表单内容对象,参考写法:
    $requestUri = "替换为你的上传接口地址"
    $uploadFilePath = (Resolve-Path "待上传文件的本地路径").Path
    $fileStream = [System.IO.File]::OpenRead($uploadFilePath)
    $streamContent = [System.Net.Http.StreamContent]::new($fileStream)
    $streamContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::Parse("application/octet-stream")
    $multipartContent = [System.Net.Http.MultipartFormDataContent]::new()
    $multipartContent.Add($streamContent, "uploadFile", [System.IO.Path]::GetFileName($uploadFilePath))
    try {
        Invoke-RestMethod -Uri $requestUri -Method Post -Body $multipartContent -ContentType "multipart/form-data"
    }
    finally {
        $fileStream.Dispose()
    }
    

内容的提问来源于stack exchange,提问作者Nnnnn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:15:30