如何在mule中获取附件信息?

如何在mule中获取附件信息?,mule,mule-el,Mule,Mule El,我试图在mule应用程序中获取附加文件的信息。我正在使用邮递员发布文本文件。但在mule应用程序中的HTTP接收器入站附件名称的大小为0之后。如何解决这种情况?请检查此链接: 您基本上需要选择表单数据并从下拉列表中选择文件,然后使用“选择文件”按钮上载文件 可以使用mel表达式在mule中检查附件: “[message.inboundAttachments] 以下是我的最新答案,我现在可以发布一张照片: 一, 或 配置Foreach: 设置的有效载荷具有以下值: “[org.apache.com

我试图在mule应用程序中获取附加文件的信息。我正在使用邮递员发布文本文件。但在mule应用程序中的HTTP接收器入站附件名称的大小为0之后。如何解决这种情况?

请检查此链接:

您基本上需要选择表单数据并从下拉列表中选择文件,然后使用“选择文件”按钮上载文件

可以使用mel表达式在mule中检查附件:

“[message.inboundAttachments]

以下是我的最新答案,我现在可以发布一张照片:

一,

配置Foreach: 设置的有效载荷具有以下值: “[org.apache.commons.io.IOUtils.toByteArraypayload.getInputStream;]

记录器具有以下值: “[有效载荷]

这是一个返回代码为200的邮递员设置示例,请注意,我添加了我们需要的键1和键2: 我的控制台中的结果如下:我删除了其他控制台:


我测试了Postman从文件上传发送二进制数据,它似乎在请求正文中发送文件内容,这意味着您将在有效负载中获得这些内容,而不是作为入站附件。为了将文件作为入站附件,您应该使用Postman发布表单数据,以便发送多部分请求,如@Ralph所述。我检查过了,这样就行了。HTH.

发送方:

接收人:


您使用的是哪种mule版本?您可以共享XML配置和邮递员输入吗?我使用mule 3.5.1,由于保密性,我无法发送XML配置。使用邮递员,我发送二进制数据作为文件上载。没问题,邮递员的事情足以解决这个问题。谢谢。我正在使用这个表达式,但是我得到了空值。谢谢@阿努拉格,很抱歉,我本来应该发送一个骡子流的截图,但我没有,因为我是新来的。在mule流中,在HTTP入站之后,添加一个值为[message.inboundAttachments]的Set Payload transformer。您应该能够获取附加文件。然后添加一个转换器,就像附加一个XML,然后向XML添加一个对象;或者,如果文件是JSON,则使用Object to XML。如果要查看内容,请向字符串和记录器添加对象。然后您就可以记录[payload]。它应该在那里显示文件的内容。我无法获取文件,因为我从邮递员处收到的请求中没有附件。入站附件的大小显示为0,但我获取的有效负载为空有效负载。现在,该附件位于入站属性部分,但如何获取文件内容作为有效负载将显示为空您在测试中看到入站附件的大小大于零?
<http:listener config-ref="HTTP_Listener_Configuration" path="apptest" doc:name="HTTP"/>        
<set-attachment attachmentName="test.json" value="{'Hi':'Hello'}" contentType="text/plain" doc:name="Attachment-JSON"/>
<set-attachment attachmentName="inputdata.json" value="{'k1':'v1','k2':'v2'}" contentType="text/plain" doc:name="Attachment"/>
<set-payload value="#['some data']" doc:name="Set Payload"/>
<http:request config-ref="HTTP_Request_Configuration" path="path2" method="POST" doc:name="HTTP"/>
<http:listener config-ref="HTTP_Listener_Configuration" path="path2" allowedMethods="POST" doc:name="HTTP"/>
<foreach collection="#[message.inboundAttachments]" doc:name="For Each">
    <set-payload value="#[payload.getInputStream()]" doc:name="Set Payload"/>
    <logger message="File Name: #[key]   Payload is: #[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/>           
</foreach>