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

SharePoint大文件分片上传:创建上传会话报错的解决方案咨询

SharePoint 50MB大文件分片上传解决方案

错误原因分析

你遇到的-2147024809参数错误,核心问题是调用startupload时没有在请求体中传递第一个分片的二进制内容,同时请求方法、请求头的配置也可能存在疏漏。

正确分片上传步骤

1. 初始化上传会话(获取UploadId)

使用POST请求调用startupload,这一步必须传递第一个分片的内容,具体要求:

  • 请求URL示例(替换实际站点、文件夹、文件名):
    ${siteUrl}/_api/web/GetFolderByServerRelativeUrl('Folder/path')/Files/add(url='${fileName}', overwrite=true)/startupload
    
  • 请求头配置:
    • Content-Type: application/octet-stream
    • 身份验证头(如Authorization: Bearer {token},根据你的认证方式调整)
  • 请求体:第一个分片的二进制数据,建议分片大小≥5MB(SharePoint对最小分片有默认要求)

请求成功后,响应会返回包含UploadId的JSON,示例:

{"UploadId":"{12345678-1234-1234-1234-1234567890AB}"}

这个UploadId是后续分片上传的唯一标识。

2. 上传中间分片(文件大于一个分片时执行)

用continueupload方法上传剩余分片,每次上传需指定已上传的总字节数:

  • 请求URL示例:
    ${siteUrl}/_api/web/GetFolderByServerRelativeUrl('Folder/path')/Files/continueupload(uploadId='${uploadId}', fileOffset=${offset})
    
    其中fileOffset是已上传的总字节数(比如第一个分片是5MB,即5*1024*1024=5242880)
  • 请求头和请求体要求和startupload一致:传递当前分片的二进制数据

3. 完成上传

所有分片上传完毕后,调用finishupload结束会话:

  • 请求URL示例:
    ${siteUrl}/_api/web/GetFolderByServerRelativeUrl('Folder/path')/Files/finishupload(uploadId='${uploadId}', fileOffset=${totalFileSize})
    
    其中fileOffset设置为文件的总字节数(50MB即50*1024*1024=52428800)
  • 若最后一个分片未填满要求大小,可在请求体中传递剩余的文件内容

关键注意事项

  • 确保文件夹路径ServerRelativeUrl是站点内的相对路径(从站点根目录开始,比如Shared Documents/TargetFolder)
  • 身份验证必须有效,且账号拥有目标文件夹的写入权限
  • 分片大小建议保持一致,避免过小的分片触发额外的验证错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:25:27