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

求助:SharePoint CSOM在Web API中上传文件提示SaveBinaryDirect方法不存在

解决Web API中CSOM无SaveBinaryDirect方法的问题

嘿,这个坑我踩过!问题出在你Web API里用的Portable版CSOM程序集——Microsoft.SharePoint.Client.Portable和配套的Runtime库是为跨平台场景设计的,裁剪了一些依赖特定系统的API,SaveBinaryDirect就是被砍掉的那个,而你控制台用的完整版CSOM(Microsoft.SharePoint.Client)才包含这个方法。

别担心,我们可以用Portable版支持的FileCreationInformation来替代,实现完全相同的上传功能。把你原来的代码改成这样就行:

using (var filestream = new FileStream(filename, FileMode.Open)) 
{ 
    context.Load(list.RootFolder); 
    context.ExecuteQuery(); 
    var fileinfo = new FileInfo(filename); 
    var result = Path.GetFileName(filename); 
    var fileUrl = String.Format("{0}/{1}/", list.RootFolder.ServerRelativeUrl, caseno); 
    var targetFileUrl = fileUrl + result;

    // 替换SaveBinaryDirect的核心代码
    var fileCreationInfo = new FileCreationInformation
    {
        ContentStream = filestream,
        Url = targetFileUrl,
        Overwrite = true // 对应原方法里的true参数,允许覆盖已有文件
    };

    Microsoft.SharePoint.Client.File newFile = list.RootFolder.Files.Add(fileCreationInfo);
    context.ExecuteQuery(); 
}

这个方案的逻辑和你原来的控制台代码完全一致:通过文件流读取本地文件,指定目标SharePoint路径,上传并覆盖已有文件。而且FileCreationInformation是Portable版CSOM原生支持的API,不会再出现方法不存在的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:31:06