当前位置: 首页 > news >正文

获取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.aspx

Configuration是表名,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进行文件下载

欢迎关注我的博客,与我一起学习,我将持续分享我的学习过程,我是 热爱学习的小翁同学~

http://www.cnnetsun.cn/news/1259616.html

相关文章:

  • 学工系统如何为“双减”政策下的学生健康成长保驾护航?
  • 八大排序对比及实现
  • 光耦 vs. 数字隔离器:5个真实项目案例告诉你如何选型不踩坑
  • RocketMQ硬件选型避坑指南:从CPU到SSD的实战配置清单
  • ZYNQ Linux开发全攻略:Petalinux vs 传统ARM开发流程对比
  • HCIP数通 vs 安全 vs 云计算:2024年华为认证方向选择指南(含薪资对比)
  • 波斯王子Apple II版开发者访谈:经典游戏背后的传奇故事
  • PHP OAuth2-Server监控与日志:实时追踪认证流量的终极指南
  • 5分钟快速上手Staticcheck:Go开发者必学的代码检查神器
  • iTerm2终极配置指南:一键安装PowerFonts字体库与Meslo LG字体
  • 计算机毕业设计springboot基于Java的幼儿护理在线咨询服务系统 基于SpringBoot的婴幼儿健康养护远程问诊平台设计与实现 Java Web技术支撑的0-6岁儿童保健专家在线服务系统开发
  • Docker国内镜像源配置全攻略:从daemon.json修改到服务重启(附七大云厂商地址)
  • ENSP静态路由实验避坑指南:为什么你的Ping不通?配置细节大揭秘
  • 终极Shuttle.dev团队协作指南:5个高效管理多开发者项目的秘诀
  • FBCTF Docker部署终极指南:10分钟搭建专业CTF竞赛平台
  • 基于Docker Compose在腾讯云Ubuntu上快速部署Dify平台
  • System Informer进程管理与调试技术深度剖析
  • RAFT:领域特定RAG的LLM适配配方
  • RT-Thread实战案例:物联网应用开发全流程
  • 终极Symfony Translation组件CCPA合规指南:构建安全的多语言数据隐私系统
  • 【Ubuntu22】【XRDP】无头模式部署Jetson Orin Nano:远程桌面配置与排错指南
  • 从零到一:实战部署谷歌Gemini Pro,解锁AI对话新体验
  • CXX终极指南:如何实现C++模板与Rust泛型的完美安全互操作
  • 从挂科到满绩:我用这3个方法吃透软件工程考点(附真题题库)
  • Apache Airflow与OpsGenie:告警路由与升级
  • 车载AAOS系统Android CarService接口定义全链路设计之车载语音助手为例
  • 3分钟掌握au-automatic图像分割:从精准物体提取到无缝背景替换完整教程
  • 深入理解linux-malware项目:恶意软件样本库与威胁情报应用
  • 终极指南:FASTER状态机如何实现高效复杂状态转换
  • 浏览器工具MCP终极指南:ESLint与Prettier代码质量配置最佳实践