Azure Logic App:HTTP触发器创建SharePoint文件损坏问题求助
解决思路与方案
针对你遇到的PDF文件存入SharePoint后损坏(空白显示、字符错误)的问题,以下是具体排查和解决方向:
1. 移除不必要的base64ToBinary转换
SharePoint连接器的「创建文件」动作支持直接接收Base64格式的内容,Logic App会自动完成Base64到二进制的解码转换。当前手动调用base64ToBinary可能引入编码错误(比如将Base64字符串按UTF-8解析后再转二进制,导致原始字节流失真)。
修改「创建文件」的内容表达式为:
triggerBody()?['$multipart']?[0]?['body']?['$content']
2. 验证二进制转换的准确性
如果必须保留转换步骤,可在Logic App中添加临时调试步骤:
- 添加「组合」动作,将
base64ToBinary(...)的结果输出为日志 - 把该二进制数据通过HTTP动作发回本地,保存为PDF文件,对比原文件的MD5哈希值,确认转换后的字节流是否与原文件一致
3. 确认Multipart数据的索引正确性
虽然你的原始输出中$multipart数组只有1个元素,但仍需确保索引[0]指向正确的文件内容项。可通过查看$multipart中每个元素的headers.Content-Disposition确认是否为目标file_content字段。
4. 检查Python请求的潜在编码问题
虽然你的代码看起来正确,但可尝试显式指定requests.post的编码参数,避免自动编码干扰:
response = requests.post(logic_app_url, files=files, headers={'Content-Type': 'multipart/form-data'})
内容的提问来源于stack exchange,提问作者jhakulin
相关产品推荐
相关产品推荐

