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

从字节数组上传文件至SharePoint Online时遇“File Not found”错误

解决SharePoint Online字节数组上传时的“File Not found”错误

我帮你梳理下这个上传报错的问题,结合你给出的代码片段来看,大概率是这几个环节出了问题,咱们一步步排查解决:

1. 目标文件夹路径不匹配或不存在

你传入的folderName很可能不是SharePoint能识别的完整服务器相对路径,比如只传了子文件夹名,而没带上站点和文档库前缀(比如/sites/你的站点名/文档库名称/子文件夹),这会导致SharePoint找不到上传目标,进而抛出“File Not found”的误导性错误。

解决方法:先验证并确保目标文件夹存在,不存在就先创建:

using (ClientContext ctx = new ClientContext(sp.siteUrl))
{
    ctx.Credentials = new SharePointOnlineCredentials(sp.id, securePwd);
    
    // 加载目标文件夹并验证存在性
    Folder targetFolder = ctx.Web.GetFolderByServerRelativeUrl(folderName);
    ctx.Load(targetFolder);
    ctx.ExecuteQuery();
    
    if (!targetFolder.Exists)
    {
        // 递归创建层级文件夹
        ctx.Web.Folders.Add(folderName);
        ctx.ExecuteQuery();
    }
    
    // 后续上传逻辑写在这里
}

2. ClientContext初始化与操作流程不完整

从你的代码片段看,只完成了Credentials的初始化,但缺少ClientContext的创建以及必要的ExecuteQuery()调用——SharePoint CSOM需要通过ExecuteQuery()来执行服务器端操作,不执行的话对象状态不会同步,也会导致找不到目标资源。

正确的上传流程应该是:创建ClientContext → 绑定权限 → 定位目标文件夹 → 构建文件上传信息 → 执行上传并同步状态。

3. 文件上传时的路径拼接错误

上传文件时如果直接使用文件名,没有和目标文件夹路径正确拼接,SharePoint会默认在站点根目录找文件,而不是你期望的文档库文件夹,这也会触发“File Not found”错误。

正确的文件上传代码示例:

// 构建上传信息
FileCreationInformation fileInfo = new FileCreationInformation();
fileInfo.Content = fileContent;
// 确保路径是文件夹+文件名的完整相对路径
fileInfo.Url = Path.Combine(folderName, fileNameWithExtension);
fileInfo.Overwrite = true; // 允许覆盖已有文件

// 上传文件到目标文件夹
Microsoft.SharePoint.Client.File uploadFile = targetFolder.Files.Add(fileInfo);
ctx.Load(uploadFile);
ctx.ExecuteQuery(); // 必须执行这一步完成上传
result = true;

4. 权限不足导致的误导性错误

有时候SharePoint会把权限不足的错误包装成“File Not found”,所以要确认你使用的账号sp.id拥有目标文档库的编辑权限(包括创建文件夹、上传文件的权限)。可以换一个有站点管理员权限的账号测试,排除权限问题。

5. 完善异常捕获,获取真实错误信息

你当前的异常捕获逻辑不完整,建议专门捕获ClientRequestException,它会返回SharePoint服务器的详细错误响应,能帮你精准定位问题:

try
{
    // 上传逻辑
}
catch (ClientRequestException ex)
{
    log.Error($"SharePoint上传错误详情: {ex.Message}, 服务器响应: {ex.Response}");
}
catch (Exception ex)
{
    log.Error($"文件上传失败: {ex.Message}");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:15:56