Я пытаюсь создать службу REST Java, которая будет загружать слово doc. Файл загружается, но содержимое представляет собой просто мусорный гекс, а не фактическое содержимое документа Word. Мой пример кода ниже. Что мне не хватает? До & после того, как файлы имеют одинаковое количество байтов.Служба отправки REST поврежденного файла
@SuppressWarnings("resource")
@RequestMapping(value = "get/testdoc", method=RequestMethod.GET, produces="application/octet-stream)
public @ResponseBody ResponseEntity<byte[]> getTestDoc() throws Throwable{
File doc = new File("C:\\temp\\file.doc");
InputStream is = new FileInputStream(doc);
byte[] bytes = IOUtils.toByteArray(is);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
responseHeaders.set("Content-Disposition" , "Attachment; filename=file.doc");
responseHeaders.setContentLength(ProposalDoc.length());
return new ResponseEntity<byte[]>(bytes, responseHeaders, HttpStatus.OK);
}
Как вы определили, что загруженный файл является «мусор шестигранной»? Вы пытались открыть его с помощью Word? Кроме того, было бы полезно указать, какую версию Spring вы используете. – Pyranja
Что делать, если вы не укажете поток октетов и длину содержимого? –
Я открыл файл словом. Использование Spring 3.1.1. это необходимо для кодирования Base64 перед загрузкой? –