我正在尝试通过角度4上载带有pdf文件的表单
该请求是多部分/表单数据请求
我正在使用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中打开。
答案 0 :(得分:0)
这可能是编码问题。
Map<String, DataHandler> attachments = exchange.getIn().getAttachments();
String charsetPartStr = attachments.get("content").getContentType();
Files.write(path, bytes, StandardOpenOption.APPEND, Charset.forName(charsetPartStr));
在编写文件时,请保留零件的介质类型以供使用。