Как преобразовать байтовый массив в составной файл в муле - PullRequest
1 голос
/ 24 февраля 2020

У меня есть байтовый массив, но мой запрос принимает файл. [Multipart]. Как мне преобразовать байтовый массив в файл из нескольких частей?

<http:request method="POST" doc:name="Request" outputMimeType='multipart/form-data; file=""'>

enter image description here

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

Это сработало для меня.
https://docs.mulesoft.com/mule-runtime/4.2/dw-multipart-functions-form

 %dw 2.0
    import dw::module::Multipart
    output multipart/form-data
    var firstPart = "content for my first part"
    var secondPart = "content for my second part"
    ---
    {
      parts: {
        part1: Multipart::field({name:"myFirstPart",value: firstPart}),
        part2: Multipart::field("mySecondPart", secondPart)
      }
    }
1 голос
/ 27 февраля 2020

Вам нужно использовать преобразование DataWeave, предшествующее HTTP-запросу, чтобы сгенерировать полезную нагрузку multipart / form-data и установить каждое вложение в качестве члена объекта parts.

Например, давайте предположим, что двоичный файл файл находится в полезной нагрузке:

    <ee:transform doc:name="Transform Message">
        <ee:message >
            <ee:set-payload ><![CDATA[%dw 2.0
            output multipart/form-data
            ---
            {
                parts : {
                    file : {
                            headers : {
                                "Content-Disposition" : {
                                "name": "file",
                                "filename": "20180721_173036.jpg"      
                            },
                            "Content-Type" : "image/jpeg",
                        }, 
                        content : payload
                    }
                }
            }]]></ee:set-payload>
        </ee:message>
    </ee:transform>
    <http:request method="POST" doc:name="Request" config-ref="HTTP_Request_configuration" path="/" />
...