当您只有文件名但没有源文档时,直接从共享点下载文件

问题描述 投票:0回答:1

***using (ClientContext clientContext = new PnP.Framework.AuthenticationManager().GetACSAppOnlyContext(siteUrl, clientID, clientSecret)) {

            Web web = clientContext.Web;
            fileUrl = downloadUrl + fileUrl + ".pptx";
          Microsoft.SharePoint.Client.File filetoDownload =web.GetFileByUrl(fileUrl);
            clientContext.Load(filetoDownload);
             clientContext.ExecuteQuery();
             Helper.CreateIfMissing(filePath);
             var stream = filetoDownload.OpenBinaryStream();
            clientContext.ExecuteQuery();
            var fileName = Path.Combine(filePath, (string)filetoDownload.Name); 
            //Add in Config for downloadload
            using (var fileStream = new FileStream(fileName, FileMode.Create))
           {
                stream.Value.CopyTo(fileStream);
           }
             path = fileName;
 }***

配置: “downloadUrl”:“https://abc.sharepoint.com/:p:/r/sites/abcFolder/_layouts/15/Doc.aspx?sourcedoc=%7BA6BACCWE-E545-4823-A765-749100023273%7D&file=”

我想下载该文件并有两种方法

  1. 因为共享点文件夹中的每个文件都有自己的源文档。我可以从用户作为输入传递的文件名中获取源文档吗?
  2. 我们可以仅借助文件名来下载没有此源文档的文件吗?

Sharepoint 文件夹结构 www.abcsite.com/MainFolder/SubFolder/文件名

文件格式:pptx

c# file sharepoint sharepoint-online pnp-framework
1个回答
0
投票

获取文档的一个简单方法是构建一个 REST API url。要下载存储在文档库中的文档,您可以使用此 URL 和 GET 方法(末尾的

$value
很重要!):

https://abc.sharepoint.com/sites/abcFolder/_api/web/GetFileByServerRelativeUrl('/sites/abcFolder/abcLibrary/MainFolder/SubFolder/FileName.pptx')/$value

如果您在网络浏览器中测试此 URL,文件名将为

$value
,但使用 C# 代码,您可以将下载的内容重命名为
FileName.pptx
之类的名称。

所以,是的,如果您知道文件存储在哪个站点/库/文件夹中,您可以根据文件名称下载文件。不要使用

Doc.aspx?sourcedoc

© www.soinside.com 2019 - 2024. All rights reserved.