访问位于Sharepoint列表中的文件

时间:2015-03-19 04:30:58

标签: c# sharepoint office365 csom

我尝试将文件从我的应用网络上传到共享点列表,但在尝试使用文件流打开/读取文件时遇到了一些问题。

我的代码:

    using (var stream = System.IO.File.OpenRead
("https://mysite.sharepoint.com/sites/dev/appweb/document-library/fileFolder/image.png"))
    {
        var folder = ctx.Web.Lists.GetByTitle("Images").RootFolder;

        FileCreationInformation fileInfo = new FileCreationInformation();
        fileInfo.ContentStream = stream;

        stream.Seek(0, SeekOrigin.Begin);
        fileInfo.Overwrite = true;
        fileInfo.Url = "image.png";

        folder.Files.Add(fileInfo);
        ctx.ExecuteQuery();
    }

所以我使用uploadFilePath构建spContext.SPAppWebUrl.ToString();变量,它将app web的值分配给变量,该变量连同硬编码文件路径和文件名的用户输入构成我的文件位置我想上传。

唯一的问题是,当我打开文件时,using (var stream = System.IO.File.OpenRead("https://mysite.sharepoint.com/sites/dev/appweb/document-library/fileFolder/image.png"))由于" https://.....&中的分号而出现问题#34;在我的应用程序web url是一个非法的角色。

有没有办法在不使用完整网址的情况下访问该文件?我确实试过修剪" https://"从我的网址,但我认为sharepoint上下文需要一个安全的连接,我得到一个拒绝访问错误。

1 个答案:

答案 0 :(得分:2)

您使用错误的方法或参数打开文件 - 查看File.OpenRead的文档 - 它只打开本地文件。

您需要使用HTTP方法(如WebClient / WebRequest)读取流或上传本地文件。