You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power Automate中从When a HTTP request is received触发器获取附件并处理

处理Power Automate HTTP触发器上传的文件并保存到SharePoint

我来帮你搞定这个问题!从你贴出的JSON响应来看,你的HTTP触发器已经成功接收了multipart格式的上传文件,接下来只需要几个简单步骤就能提取文件并保存到SharePoint:

步骤1:定位上传的文件数据

你的触发器输出里,body字段下的$multipart数组就是所有上传的文件集合(哪怕只传了一个文件,它也是数组形式)。每个数组元素对应一个上传的文件,包含了文件的元数据和内容:

  • headers.Content-Disposition:包含文件名信息
  • body.$content:Base64编码的文件内容
  • body.$content-type:文件的MIME类型

步骤2:提取文件名和文件内容

你可以用Power Automate的表达式来直接提取这些信息:

  • 提取文件名:

    split(split(triggerBody()?['$multipart'][0]['headers']['Content-Disposition'], 'filename="')[1], '"')[0]
    

    这个表达式的逻辑是:先按filename="分割字符串,取第二部分,再按"分割,取第一部分,就能拿到纯文件名(比如ApplicationForm.pdf)。

  • 提取文件内容:

    triggerBody()?['$multipart'][0]['body']['$content']
    

    直接引用这个字段即可,Power Automate会自动处理Base64编码的内容。

步骤3:保存到SharePoint

添加SharePoint连接器的Create file动作,然后填写以下参数:

  • Site Address:选择或输入你的SharePoint站点地址
  • Folder Path:指定文件要保存的文件夹(比如Shared Documents/上传文件)
  • File Name:粘贴刚才提取文件名的表达式
  • File Content:粘贴提取文件内容的表达式

处理多个文件的情况

如果你的HTTP请求可能上传多个文件,那么需要添加Apply to each动作,将triggerBody()?['$multipart']作为循环的输入,然后在循环内部执行上面的“提取+保存”操作即可,这样就能批量保存所有上传的文件。

测试提示

你可以先添加一个Compose动作,把提取的文件名和内容放进去测试,确认表达式正确后再连接SharePoint的保存动作,避免误操作。

内容的提问来源于stack exchange,提问作者cymorg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:07:49