繁体   English   中英

如何使用此代码在 C# 中实现 SharePoint 文件上传功能?

[英]How to implement SharePoint File Upload functionality in C# using this code?

我正在尝试将 SharePoint 文件上传功能添加到我的 C# MVC 项目中。

以下是我的代码:

        var sourceFilePath = @"Z:\itworked.txt";
        var targetUrl = "/Project Room Test";

        using (var ctx = new ClientContext("https://company.sharepoint.com/sites/ProjectRoom"))
        {
            SecureString passWord = new SecureString();

            foreach (char c in "ThisIsNotMyPWD123".ToCharArray()) passWord.AppendChar(c);

            ctx.Credentials = new SharePointOnlineCredentials("username@company.com", passWord);

            //Upload file
            var targetFileUrl = String.Format("{0}/{1}", targetUrl, Path.GetFileName(sourceFilePath));

            using (var fs = new FileStream(sourceFilePath, FileMode.Open))
            {
                Microsoft.SharePoint.Client.File.SaveBinaryDirect(ctx, targetFileUrl, fs, true);
            }
        }

我知道第一行代码有效,因为如果我通过删除文件扩展名 (.txt) 来更改它,我会收到一条错误消息,指出找不到文件。

我知道第 4-10 行有效,因为我能够执行一个测试,在该测试中我抓取 web.Title 并将其设置为申请表中的 Notes 字段。 此操作需要我的凭据。

产生的错误是 401 Unauthorized against line 17 => Microsoft.SharePoint.Client.File.SaveBinaryDirect(ctx, targetFileUrl, fs, true);

我认为问题在于 targetUrl 和/或 targetFileUrl。

以下是我可以拖放文件的位置的URL: https://company.sharepoint.com/sites/ProjectRooms/AllProject%2Items.

如果我拖放文件然后复制其链接,结果如下: https://company.sharepoint.com/:t:/r/sites/ProjectRoom/Project%20Room%20Test/itworked.txt?btg =2&web=2&e=7kesiF

解决方案是更新 targetUrl => var targetUrl = /sites/ProjectRoom/Project Room Test

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM