如何解析表单数据触发器中的文件名

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