首页 > 解决方案 > 处理(读取)逻辑应用程序中的 Base64 编码文件,并发布到端点

问题描述

我有一个逻辑应用程序,它从 SharePoint (.xlsx) 获取内容并将正文发布到端点以进行处理。现在我看到的内容是一个 base64 编码的文件,我想做的是按原样发布这些数据。

当我尝试使用邮递员发布它时,它被成功接受但是当它从我得到的逻辑应用程序发布时

错误的请求。Http 请求失败:内容不是有效的 JSON。

但我可以看到要发送的正文是类型,这是一个有效的 Json

{
  "$content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
  "$content": "AA....VeryLong...B1241BACDFA=="
}

也试过这个表达

decodeBase64(triggerBody()?[body('getFile')])

但我得到一个不同的错误

无效的模板。无法在“1”行和“2565”列的操作“HTTP”输入中处理模板语言表达式:“模板语言表达式 'decodeBase64(triggerBody()?[body('getFile')])' 无法评估,因为属性'{ "$content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "$content": "UEsDBBQABgAIAAAAIQDuooLHjAEAAJkGAAATAAgCW0Nvb...

我想要实现的很简单,我真的想将 Json 原样或 base64Encoded 字符串的内容发布到我的终点。

标签: jsonazure-logic-appspower-automate

解决方案


如果你用 base64 解码内容,你会发现内容是乱码。这是因为内容是 ooxml 格式,然后使用 base64 编码。在逻辑应用程序中,您无法解码 ooxml。

第一个解决方案,您可以使用 Azure Function 编写一个方法来读取文档然后返回内容。然后在逻辑应用程序中调用该函数来获取内容。

第二种解决方案,将您的文件更改为直接可读的文件(如 .txt 文件),我尝试过这种方式,您可以解析它 Json。

在此处输入图像描述


推荐阅读