file_name = os.path.basename(file_path)
with open(file_path, 'rb') as file:
file_content = file.read()
files = {
'file_content': (file_name, file_content, 'application/octet-stream')
}
response = requests.post(logic_app_url, files=files)
base64ToBinary(triggerBody()?['$multipart']?[0]?['body']?['$content'])
附加信息:
这是来自 HTTP 触发器的正文的原始输出(在 Sharepoint 连接器之前)
"body": {
"$content-type": "multipart/form-data; boundary=17d2fbd65b268c5f0383c18eaeafbfea",
"$content": "LS0xN2QyZmJkNjViMjY4YzVmMDM4M2MxOGVhZWFmYmZlYQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmaWxlX2NvbnRlbnQiOyBmaWx.....YzE4ZWFlYWZiZmVhLS0NCg==",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name=\"file_content\"; filename=\"original_pdf.pdf\"",
"Content-Type": "application/octet-stream"
},
"body": {
"$content-type": "application/octet-stream",
"$content": "JVBERi0xLjQKJazcIKu6CjEgMCBvYmoKPDwgL1BhZ2VzIDIgMCBSIC9UeXBlIC9DYXRhbG9nID4......CnN0YXJ0eHJlZgoxNTkyMgolJUVPRgo="
}
}
]
}
文件内容正确地进行了base64编码(上面仅给出了部分内容)。如果我从文件创建 base64 编码字符串并将其保存在我的 Python 函数中到本地文件中,并与 Azure 逻辑应用程序接收到的内容进行比较,我会得到完全相同的内容。
任何想法都会有帮助。
这里不需要转换成二进制:
base64ToBinary(triggerBody()?['$multipart']?[0]?['body']?['$content'])
Design
这对我有用:
当您创建了一个功能应用程序,它也与存储帐户互连时,我建议您先将文件发送到存储帐户,然后再获取它。并且无需将其转换为二进制。
我的 pdf 内容看起来和你的一样,我只是按原样使用它并且它有效:
Output:
文件已在共享点中创建:
离子逻辑应用程序工作流程没有任何问题,您只需使用其内容,而不是转换它。