byte[]到图像转换弹簧引导



我需要在春季启动中通过byte[]到图像的转换进行澄清,根据以下代码,我可以获得图像,但无法显示。所以我需要在调用API时显示图像的解决方案,http://localhost:9000/files/d317447b-7235-47c5-9923-bc65ae89d76

@GetMapping("/files/{id}")
public ResponseEntity<byte[]> getFile(@PathVariable String id) {
FileDB fileDB = storageService.getFile(id);
log.info("{}->{}","FILES_GET_BY_ID:",id);
return ResponseEntity.ok()
.header(HttpHeaders.ACCEPT, "attachment; filename="" + fileDB.getName() + """)
.body(fileDB.getData());
}

最后我得到了解决方案。

@GetMapping("/files/{id}")
public ResponseEntity<byte[]> getFile(@PathVariable String id) {
FileDB fileDB = storageService.getFile(id);
log.info("{}->{}","FILES_GET_BY_ID:",id);
return ResponseEntity.ok()
.contentType(MediaType.IMAGE_JPEG)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="" + fileDB.getName() + """)
.body(fileDB.getData());
}

我认为您需要更改HTTP标头不要使用ACCEPT,而是使用标题Content-Disposition还将响应类型设置为相关类型。

最新更新