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

Power Automate POST HTTP动作发送文件时文件损坏问题求助

Power Automate上传SharePoint文件至Web API后文件损坏问题

问题背景

通过Power Automate实现SharePoint文件夹文件自动上传至目标Web API,已逆向得到API请求体结构,但上传后文件始终损坏。服务器返回状态正常、文件大小正确且error=0,尝试多种方法均未解决。

请求体结构

------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="id_composition"

@{variables('id_compo')}
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="date_upd"

@{body('Current_time')}
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="id_client"

87
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="id_compo_detail"

@{variables('id_compo_detail')}
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="titre"

<p></p>
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="files"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="sous_titre"


------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="color_text"

#000000
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="css1"


------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="actif"

1
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="temps_affichage"

10
------WebKitFormBoundaryUfW1N2vGAB9oEPC1
Content-Disposition: form-data; name="file"; filename="@{triggerBody()?['{FilenameWithExtension}']}"
Content-Type: image/png

@{body('Get_file_content')}
------WebKitFormBoundaryUfW1N2vGAB9oEPC1--

已完成排查

  • 确认files字段为空白的application/octet-stream类型,file字段以二进制格式发送(通过Firefox开发者工具验证)
  • 验证流发送的是二进制数据,Base64字符串与原文件一致
  • 尝试过嵌入HTML、更换JPG格式,均无效

解决方法

1. 改用二进制输出的文件获取动作

Power Automate的Get file content默认返回Base64编码内容,即使你认为是二进制,实际可能被转码。替换为Get file content using path,并在动作设置中开启Include binary content选项,确保获取原始二进制流。

2. 避免手动拼接请求体,用自动构造multipart/form-data

放弃手动编写请求体,使用Send an HTTP request动作的自动构造功能:

  • 在Headers中设置Content-Type为multipart/form-data(Power Automate会自动生成合法的边界符)
  • 在Body的form-data模式下添加所有字段:
    • 普通字段(如id_composition、date_upd等)直接填入变量或固定值
    • files字段设为Text类型,值留空
    • file字段选择File类型,File content选上述二进制流,File name用触发的文件名变量

3. 检查换行符格式

若必须手动拼接请求体,确保所有换行使用CRLF(\r\n),而非LF(\n)。Power Automate中字符串换行默认是LF,会导致multipart结构解析错误,损坏文件。可以用concat()函数手动添加\r\n来控制换行。

4. 验证二进制流类型

通过Compose动作输出文件内容的类型,若显示为String则说明是Base64编码,必须切换到二进制输出的动作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:43:18