如何使用sp.web(SPFX)获取文档库中文件的URL

时间:2020-03-06 10:03:35

标签: sharepoint-online spfx

我需要获取SharePoint库(案例文档)中每个单独文件的URL。目前,我正在使用:

sp.web.lists.getByTitle("Case Documents").items.get().then((items: any[]) => { 
      let returnedItems: IListCItem[] = items.map((item) => { return new ListCItem(item); });

      this.setState({ 

        ListCItems: returnedItems, 
      }, () => {
        console.log(this.state.ListCItems);
      });
    });


//     sp.web.lists.getByTitle("Case Documents").items.select("ID","Title","CaseID/Title","CaseID/ID").expand("CaseID").get().then((items: any[]) => { 
//       let returnedItems: IListCItem[] = items.map((item) => { return new ListCItem(item); });
//  console.log(returnedItems);
//       this.setState({ 

//         ListCItems: returnedItems, 
//       });
//     });

...以获取文件名列表。如您所见,我一直在努力使用注释掉的代码获取查找列。我将其包括在内以向您展示我的使用习惯。

有人可以告诉我如何获取每个文件的URL,这样我就可以为正在创建的Web部件中的每个文档创建可点击的链接。

我看过:https://github.com/SharePoint/PnP-JS-Core/wiki/Working-With:-Files 但是我不清楚。我猜是这样的:

pnp.sp.web.getFolderByServerRelativeUrl("/sites/dev/documents").files.getByName("file.txt").getText().then((text: string) => {});


2 个答案:

答案 0 :(得分:2)

示例演示:

h

答案 1 :(得分:1)

您甚至可以自己编写URL。

[siteurl]/[document library name]/[file name with extension]

您可以通过以下方式获取spfx中的网站网址:

this.context.pageContext.web.absoluteUrl

您可以将其作为propwebpartname.ts文件传递给组件