获取SharePoint文件的下载链接和在线预览链接
目录
- 一、在Power Apps中获取文档库文件的下载链接:
- 1、Download的链接
- 2、Online的链接:
- (1) 通过浏览器打开Office文件
- (2) 通过本地Office软件打开Office文件
- 二、在Power Automate里获取文档库文件的链接:
- 1、通过Get file properties操作获取 (参数:ID)
- (1) 获取Online的链接(通过本地的Office软件打开)
- (2) 获取下载链接
- 2、Create File时获取Online链接和Download链接
- (1) 拼接Download Link:
- (2) 拼接Online Link(在浏览器中预览Office文件):
- 三、获取SharePoint List的附件链接
- 1、Online链接(通过本地Office软件打开):
- 2、Download链接:
一、在Power Apps中获取文档库文件的下载链接:
1、Download的链接
先用Gallery连接文档库,然后在每一项里 拼接字符串
//如果包含一些特殊字符,直接拼接路径下载链接会失效,所以需要使用EncodeUrl函数进行转义
Launch("https://aaa.sharepoint.com/sites/nnn/_layouts/15/download.aspx?Sourceurl="&EncodeUrl(ThisItem.'Full Path'))前面这个前缀可以去 站点内容(Site Content) 的链接里去复制,“15”/后面的就不要了
Site Content链接 形如:
https://aaa.sharepoint.com/sites/nnn/_layouts/15/viewlsts.aspx?view=14
下图里把"15/"后面的删除就是我们要的前缀
2、Online的链接:
(1) 通过浏览器打开Office文件
ThisItem.'Link to item'(2) 通过本地Office软件打开Office文件
直接路径拼接名字,Report是文件夹名,test.xlsx是文件名
https://aaa.sharepoint.com/sites/nnn/Report/test.xlsx解析: https://aaa.sharepoint.com/sites/nnn/Report/ (到文件夹这层的前缀) + (带拓展名的文件名转义:有的文件名带特殊字符或者中文之类的,所以还是需要用函数先转义一下名字的) EncodeUrl(ThisItem.'File name with extension')二、在Power Automate里获取文档库文件的链接:
在Power Automate里拼接URL链接的时候,可以使用以下两种函数进行编码,本文使用的是encodeUriComponent()
官网说:这两个函数的工作方式相同,但首选 uriComponent()
1、通过Get file properties操作获取 (参数:ID)
(1) 获取Online的链接(通过本地的Office软件打开)
通过ID可以在Get file properties动作中获取到 Link to item 和 Full Path的信息:
Link to item 就是Online的链接
(2) 获取下载链接
在Automate中用encodeUriComponent函数对Full Path进行编码
encodeUriComponent(outputs('Get_file_properties')?['body/{FullPath}'])再如前文一般,使用Site Content链接的一部分与之拼接,即是下载链接
2、Create File时获取Online链接和Download链接
在文档库中直接创建一个新的文件:
Create File的动作可以获取到,Etag 属性和 文件名
(1) 拼接Download Link:
不变的前缀链接 + 编码后的路径
https://aaa.sharepoint.com/sites/nnn/_layouts/15/download.aspx?Sourceurl=这里的Path 我们只取Report/test02.xlsx,所以需要用slice函数去掉第一个 “/”
uriComponent(slice(outputs('Create_file')?['body/Path'],1,length(outputs('Create_file')?['body/Path'])))(2) 拼接Online Link(在浏览器中预览Office文件):
其中 %7B代表 “{” ,%7D代表 “}”
这个链接有点不一样, 分解成以下部分
https://aaa.sharepoint.com/sites/nnn/_layouts/15/Doc.aspx?sourcedoc=%7B这里是获取Etag的{ }里的值
first(split(last(split(outputs('Create_file')?['body/ETag'],'{')),'}'))%7D&file=这里是把文件名编码
encodeUriComponent(outputs('Create_file')?['body/Name'])三、获取SharePoint List的附件链接
1、Online链接(通过本地Office软件打开):
原List链接如下,其中Configuration是表名:
https://aaa.sharepoint.com/sites/nnn/Lists/Configuration/AllItems.aspxConfiguration是表名,1是Item的ID, test.xlsx是文件名) :
链接结构: https://域名.sharepoint.com/sites/站点名/Lists/表名/Attachments/ID/文件名 链接形如: https://aaa.sharepoint.com/sites/nnn/_layouts/15/download.aspx?Sourceurl=Lists/Configuration/Attachments/1/test.xlsx使用这个链接,会出现一个弹框,点击打开会使用本地的Office软件打开在线文档
2、Download链接:
下面的Configuration是表名,1是ItemID,test.xlsx是文件名
如果 文件名 或 列表名 含有特殊字符还是要进行URL转义
链接结构: https://域名.sharepoint.com/sites/站点名/_layouts/15/download.aspx?Sourceurl=Lists/表名/Attachments/ID/文件名 链接形如: https://aaa.sharepoint.com/sites/nnn/_layouts/15/download.aspx?Sourceurl=Lists/Configuration/Attachments/1/test.xlsx问题记录(Power Apps Form下载邮件附件失败):
公司电脑的浏览器,在Power Apps的Form表单的附件控件里,可以下载任何格式的文件,除了msg/eml格式的邮件文件,会显示无法下载,已阻止,这种情况下,就可以拼接Download的URL进行文件下载
欢迎关注我的博客,与我一起学习,我将持续分享我的学习过程,我是 热爱学习的小翁同学~
