Reading Attachments in Mule

Let's say there is a requirement to handle a multipart request. As the request is received by Mule, the attachments are saved in an object called InboundAttchments, which is part of Mule Message.

Configuration

Getting Attachment Metadata

Flow XML

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<http:listener-config name="HTTP_Listener_Configuration"
host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration" />
<flow name="attachmentFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/attachment" doc:name="HTTP" />
<logger
message="Total Attachments: #[message.inboundAttachments.size()]"
level="INFO" doc:name="Total Attachments" />
<foreach collection="#[message.inboundAttachments]" doc:name="For Each">
<logger
message="#["Attachment Name: " +flowVars.key+"\nAttachment Size (in Bytes): "+payload.dataSource.part.size +"\nContent-Type: "+payload.dataSource.part.contentType+"\nAttachmant Data: "+message.payloadAs(java.lang.String)]"
level="INFO" doc:name="Attachment Details" />
</foreach>
</flow>
</mule>

Thanks, and let me know your thoughts in the comments section!

 

 

 

 

Top