Как преобразовать byte [] в ResponseEntity <Striing> как appplication/octet-stream

Мое приложение построено на SprinBoot, Java Technology. Я хочу написать API для загрузки файла, и я использую плагин swagger-codegen-maven-plugin, и в спецификации он упоминается ниже для загрузки файла.

content:
    application/octect-stream:
        schema:
            type: string
            format: binary

Код, который автоматически создается с помощью кодогенератора swagger, содержит тип возврата какResponseEntity<String>в приложении java SpringBoot. Теперь у меня есть данные файла в byte[], как преобразовать их в String и отправить как application/octect-stream?.

Также дайте мне знать, если мои данные находятся в объекте File в команде byte[], как их отправить?

1 ответ

Если предполагается, что ваш API возвращает файл, который должен быть загружен в качестве ответа, тогда ваш API должен возвращать responseResponseEntity. Ниже приведен снимок кода, который вы можете попробовать.

      private ResponseEntity<ByteArrayResource> getRespEntity(Byte[] fileByte) {
    ByteArrayResource resource = new ByteArrayResource(fileByte);
    HttpHeaders headers = new HttpHeaders();
    headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
    headers.add("Pragma", "no-cache");
    headers.add("Expires", "0");
    
    return ResponseEntity.ok().headers(headers).contentLength(resource.contentLength())
            .contentType(MediaType.parseMediaType("application/octet-stream"))
            .body(resource);
}   
Другие вопросы по тегам