如何解析表单数据触发器中的文件名
How do I parse out the file name in a form-data trigger
来自 Post 伙计,我正在对我的逻辑应用程序执行 Post。我发送以下内容:
{
"headers": {
"Cache-Control": "no-cache",
"Connection": "keep-alive",
"Accept": "*/*",
"Accept-Encoding": "gzip,deflate",
"Host": "prod-24.centralus.logic.azure.com:443",
"User-Agent": "PostmanRuntime/6.4.0",
"Postman-Token": "19018057-41ef-4f96-a3a1-cdbf0a1918bc",
"Content-Length": "486",
"Content-Type": "multipart/form-data; boundary=--------------------------117388521639837767242570"
},
"body": {
"$content-type": "multipart/form-data; boundary=--------------------------117388521639837767242570",
"$content": "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTExNzM4ODUyMTYzOTgzNzc2NzI0MjU3MA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJzb2Z0d2FyZSI7IGZpbGVuYW1lPSJmaWxlLnppcCINCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vemlwDQoNClBLAwQUAAAACACZVEhLillatwgAAAAGAAAACAAAAGZpbGUudHh0K0ktLslNBQBQSwECHwAUAAAACACZVEhLillatwgAAAAGAAAACAAkAAAAAAAAACAAAAAAAAAAZmlsZS50eHQKACAAAAAAAAEAGADAJqtCS0DTATYTq0JLQNMBlyUeQktA0wFQSwUGAAAAAAEAAQBaAAAALgAAAAAADQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tMTE3Mzg4NTIxNjM5ODM3NzY3MjQyNTcwDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImRldmljZUlkIg0KDQpzMTIzNDUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0xMTczODg1MjE2Mzk4Mzc3NjcyNDI1NzAtLQ0K",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name=\"software\"; filename=\"file.zip\"",
"Content-Type": "application/zip"
},
"body": {
"$content-type": "application/zip",
"$content": "UEsDBBQAAAAIAJlUSEuKWVq3CAAAAAYAAAAIAAAAZmlsZS50eHQrSS0uyU0FAFBLAQIfABQAAAAIAJlUSEuKWVq3CAAAAAYAAAAIACQAAAAAAAAAIAAAAAAAAABmaWxlLnR4dAoAIAAAAAAAAQAYAMAmq0JLQNMBNhOrQktA0wGXJR5CS0DTAVBLBQYAAAAAAQABAFoAAAAuAAAAAAA="
}
},
{
"headers": {
"Content-Disposition": "form-data; name=\"deviceId\""
},
"body": {
"$content-type": "application/octet-stream",
"$content": "czEyMzQ1"
}
}
]
}
}
我正在尝试获取文件名值和文件内容。
我将创建一个 Blob 文件
谢谢,
我是这样做的。我假设您正在使用设置为 POST 的 HTTP 触发器。在 HTTP 触发器之后添加一个 Foreach 连接器,以便在进行多文件上传时可以遍历所有文件。
Foreach 源将是这个表达式:
triggerOutputs().body['$multipart']
在 foreach 中,你可以用这个丑陋的表达式解析文件名,这很糟糕,但它有效:
replace(replace(item().headers['Content-Disposition'], 'form-data; name="myFileUploadInput"; filename="', ''), '"', '')
据我所知,表达式中不支持正则表达式,这会更好。您可能可以用子字符串做一些事情,但它也可能非常难看。
以下是将 foreach 中的正文保存到 blob 存储的方法:item().body
来自 Post 伙计,我正在对我的逻辑应用程序执行 Post。我发送以下内容:
{
"headers": {
"Cache-Control": "no-cache",
"Connection": "keep-alive",
"Accept": "*/*",
"Accept-Encoding": "gzip,deflate",
"Host": "prod-24.centralus.logic.azure.com:443",
"User-Agent": "PostmanRuntime/6.4.0",
"Postman-Token": "19018057-41ef-4f96-a3a1-cdbf0a1918bc",
"Content-Length": "486",
"Content-Type": "multipart/form-data; boundary=--------------------------117388521639837767242570"
},
"body": {
"$content-type": "multipart/form-data; boundary=--------------------------117388521639837767242570",
"$content": "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTExNzM4ODUyMTYzOTgzNzc2NzI0MjU3MA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJzb2Z0d2FyZSI7IGZpbGVuYW1lPSJmaWxlLnppcCINCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vemlwDQoNClBLAwQUAAAACACZVEhLillatwgAAAAGAAAACAAAAGZpbGUudHh0K0ktLslNBQBQSwECHwAUAAAACACZVEhLillatwgAAAAGAAAACAAkAAAAAAAAACAAAAAAAAAAZmlsZS50eHQKACAAAAAAAAEAGADAJqtCS0DTATYTq0JLQNMBlyUeQktA0wFQSwUGAAAAAAEAAQBaAAAALgAAAAAADQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tMTE3Mzg4NTIxNjM5ODM3NzY3MjQyNTcwDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImRldmljZUlkIg0KDQpzMTIzNDUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0xMTczODg1MjE2Mzk4Mzc3NjcyNDI1NzAtLQ0K",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name=\"software\"; filename=\"file.zip\"",
"Content-Type": "application/zip"
},
"body": {
"$content-type": "application/zip",
"$content": "UEsDBBQAAAAIAJlUSEuKWVq3CAAAAAYAAAAIAAAAZmlsZS50eHQrSS0uyU0FAFBLAQIfABQAAAAIAJlUSEuKWVq3CAAAAAYAAAAIACQAAAAAAAAAIAAAAAAAAABmaWxlLnR4dAoAIAAAAAAAAQAYAMAmq0JLQNMBNhOrQktA0wGXJR5CS0DTAVBLBQYAAAAAAQABAFoAAAAuAAAAAAA="
}
},
{
"headers": {
"Content-Disposition": "form-data; name=\"deviceId\""
},
"body": {
"$content-type": "application/octet-stream",
"$content": "czEyMzQ1"
}
}
]
}
}
我正在尝试获取文件名值和文件内容。 我将创建一个 Blob 文件
谢谢,
我是这样做的。我假设您正在使用设置为 POST 的 HTTP 触发器。在 HTTP 触发器之后添加一个 Foreach 连接器,以便在进行多文件上传时可以遍历所有文件。
Foreach 源将是这个表达式:
triggerOutputs().body['$multipart']
在 foreach 中,你可以用这个丑陋的表达式解析文件名,这很糟糕,但它有效:
replace(replace(item().headers['Content-Disposition'], 'form-data; name="myFileUploadInput"; filename="', ''), '"', '')
据我所知,表达式中不支持正则表达式,这会更好。您可能可以用子字符串做一些事情,但它也可能非常难看。
以下是将 foreach 中的正文保存到 blob 存储的方法:item().body