我正在尝试获取mule应用程序中附加文件的信息。我使用POSTMAN来发布文本文件。但是在mule应用程序中的HTTP接收器之后入站附件名称的大小= 0.如何解决这种情况?
答案 0 :(得分:2)
检查此链接:
Tool for sending multipart/form-data request
您基本上需要选择表单数据并从下拉列表中选择文件,然后使用“选择文件”按钮上传文件。
您可以使用mel表达式检查mule中的附件:
“#[message.inboundAttachments]
以下是我更新的答案,我现在可以发布照片:
1
OR
“#[org.apache.commons.io.IOUtils.toByteArray(payload.getInputStream());]
“#[有效载荷]
我的控制台中的结果是这样的(我删除了其他人):
< mule xmlns:vm =“http://www.mulesoft.org/schema/mule/vm" xmlns:batch =”http://www.mulesoft.org/schema/mule/batch" xmlns:data-mapper =“http://www.mulesoft.org/schema/mule/ee/data-mapper" xmlns:db =”http://www.mulesoft.org/schema/mule/db" xmlns:tracking =“http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:sfdc =”http://www.mulesoft.org/schema/mule/sfdc"的xmlns:文件=“http://www.mulesoft.org/schema/mule/file" .. .. .. .. < mule xmlns:context =“http://www.springframework.org/schema/context" xmlns:cluster =”http://www.mulesoft.org/schema/mule/ee/cluster"的xmlns:数据映射器=“http://www.mulesoft.org/schema/mule/ee/data-mapper" .. .. .. ..
答案 1 :(得分:1)
<强>发件人:强>
<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>
答案 2 :(得分:0)
我测试过Postman从文件上传中发送二进制数据,似乎它在请求体中发送文件内容,这意味着您将在有效负载中获取该数据,而不是作为入站附件。为了将文件作为入站附件,您应该使用Postman POST表单数据,以便发送多部分请求,如@Ralph所述。我已经检查过,这种方式有效。 HTH。