2015-03-19 23 views
1

我试图从我的应用程序Web上传文件到共享点列表,但在尝试使用文件流打开/读取文件时遇到了一些问题。访问位于Sharepoint列表中的文件

我的代码:

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(); 
    } 

所以我建立使用spContext.SPAppWebUrl.ToString();该应用程序网站的值赋给变量的uploadFilePath变量与硬编码的文件路径和用户输入的文件名一起弥补我的位置我想要上传的文件。

唯一的问题是,当我打开我的文件using (var stream = System.IO.File.OpenRead("https://mysite.sharepoint.com/sites/dev/appweb/document-library/fileFolder/image.png"))时,由于我的应用程序网址中的分号“https:// .....”是非法字符,因此存在问题。

有没有什么办法可以在不使用完整网址的情况下访问文件?我曾尝试修剪“https://”从我的网址,但我认为共享点上下文期望一个安全的连接,我得到一个访问被拒绝的错误。

+0

请问您可以取而代之的方法参数在您的示例代码中使用常量值吗?现在评论“打开我的文件,使用(var stream = System.IO.File.OpenRead(uploadFilePath))有一个问题,因为”https:// .....“中的分号非常混乱,因为它不是清除哪些变量设置为“https:// ...”(假设您正在讨论'fileUrl',否则它将毫无意义,但无论如何都要检查)。 – 2015-03-19 05:02:47

+0

@AlexeiLevenkov没有问题,更简单理解? – Junior 2015-03-19 05:19:54

+0

感谢您的更新 - 现在很明显,您正在使用错误的方法或参数来打开文件 - 查看“File.OpenRead”的文档 - 它仅打开本地文件。现在不清楚您是否使用错误的源路径或错误的方法来获取文件的流 - 你可能会发现自己的答案,如果没有 - 更新与该信息的问题。 – 2015-03-19 05:26:56

回答

2

您正在使用错误的方法或参数来打开文件 - 请检查文档File.OpenRead - 它仅打开本地文件。

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

相关问题