Я новичок в Java и хотел бы получить некоторую помощь в архивировании загруженного файла с помощью вызова rest api в бэкэнд MSSQL. Ниже приведен фрагмент кода, который принимает идентификатор в качестве входного параметра, выбирает запись, специфичную для этого идентификатора, и загружает ее локально. Теперь мне нужен код, измененный для Zip файла при загрузке.
@GetMapping("/message/save")
@CrossOrigin(origins = "*")
public ResponseEntity<byte[]> download(@RequestParam("id") Long id) throws Exception {
Optional<MessageEntity> messageRecord = messageRepository.findById(id);
MessageEntity messageEntity = messageRecord.get();
ObjectMapper objectMapper = new ObjectMapper();
String xml = objectMapper.writeValueAsString(messageEntity);
byte[] isr = xml.getBytes();
String fileName = "message.zip";
HttpHeaders respHeaders = new HttpHeaders();
respHeaders.setContentLength(isr.length);
respHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
respHeaders.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName);
return new ResponseEntity<byte[]>(isr, respHeaders, HttpStatus.OK);
}
Я ожидаю, что на выходе получится заархивированный файл.