在Logic App中处理(读取)Base64编码文件,并发布到端点

问题描述 投票:0回答:1

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

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

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

但是我可以看到那个意味着发送的身体属于这种类型,这是一个有效的Json

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

也试过这个表达

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

但我得到了一个不同的错误

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

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

json azure-logic-apps microsoft-flow
1个回答
0
投票

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

首先,您可以使用Azure Function编写一个方法来读取文档然后返回内容。然后在逻辑app中调用函数来获取内容。

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.