Apache camel Multipart问题

时间:2018-12-12 17:42:34

标签: apache-camel multipartform-data

我正在尝试通过角度4上载带有pdf文件的表单

enter image description here

该请求是多部分/表单数据请求

我正在使用spring boot,我的路由为

的apache camel-servlet
 rest("/notice").description("Upload Multiple Report via camel and netty")
                        .post().route().unmarshal().mimeMultipart()
                        .to("direct:uploadReportProcessor");

在我的处理器中,我有

Map<String, DataHandler> attachments = exchange.getIn().getAttachments();

然后我正尝试写入如下文件:

    byte[] bytes = StreamUtils.copyToByteArray(dh.getInputStream());

Path path = Paths.get("C:\\temp\\" + dh.getName());
Files.write(path, bytes);

无论我尝试什么,该文件始终已损坏。无法在Acrobat Reader中打开。

1 个答案:

答案 0 :(得分:0)

这可能是编码问题。

Map<String, DataHandler> attachments = exchange.getIn().getAttachments();

String charsetPartStr = attachments.get("content").getContentType();
Files.write(path, bytes, StandardOpenOption.APPEND,  Charset.forName(charsetPartStr));

在编写文件时,请保留零件的介质类型以供使用。