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

使用MS Graph API向SharePoint上传PDF后无法正常打开的问题求助

根因定位

调用PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content接口上传小于4MB的单文件时,要求请求头Content-Type与上传文件的实际MIME类型完全匹配。你当前配置的multipart/form-data仅适用于表单提交场景,直接传递二进制文件流时使用该类型会导致SharePoint无法正确识别PDF格式,进而生成预览失败。手动上传同文件时客户端会自动匹配正确的MIME类型,因此预览功能正常。

修复方案

1. 修正请求头配置

上传PDF时将Content-Type改为application/pdf,不同文件类型对应匹配对应MIME类型即可:

  • .docx格式:application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • .txt格式:text/plain
  • .pdf格式:application/pdf

修正后的调用代码示例:

Invoke-WebRequest -Method PUT -Uri "https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{parent-id}:/PDFfile.pdf:/content" -Headers @{
    'Authorization' = "Bearer <accesstoken>"
    'Content-Type' = 'application/pdf'
    'Accept' = 'application/json'
}  -InFile $pathtopdffile

若无自定义网关要求,请求头中的APIKEY字段可直接删除,Graph API原生认证仅需要Authorization头。

2. 异常排查项

修正配置后仍存在问题可依次排查:

  • 确认本地PDF文件格式与后缀匹配,不存在修改后缀伪装PDF的情况
  • 若文件大小超过4MB,需改用Graph API的大文件分段上传接口,不可使用当前单文件PUT接口,否则会导致文件损坏无法生成预览
  • 上传完成后校验返回的driveItem资源中file.mimeType字段,确认取值为application/pdf,若字段值异常说明类型识别仍存在问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:06:07