Apache верблюд Multipart выпуск - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь загрузить форму с PDF-файлом через угловую 4 как

enter image description here

Запрос представляет собой запрос multipart / form-data

Я использую Spring Boot, Apache Camel-сервлет с моим маршрутом как

 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 голосов
/ 18 декабря 2018

Вероятно, это проблема кодирования.

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

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

Сохраняйте медиа тип детали и используйте его при записи файлов.

...