从Spring Controller检索图像以显示在Thymeleaf模板中

时间:2018-09-24 09:47:05

标签: spring image thymeleaf

我试图在Thymeleaf模板中显示来自MySql数据库的图像。

大多数都能正常工作,但是控制器代码有问题:

@GetMapping(value = "/image/{someId}", produces = {MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE})
public ResponseEntity<byte[]> getPicture(@PathVariable("someId") long someId) throws IOException {

    byte[] imageContent = //Getting the blob element from the Repo through a service     
    final HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.IMAGE_JPEG);
    headers.set("Content-Disposition", "attachment; filename=fileName.jpg");
    headers.setContentLength(imageContent.length);        
    return new ResponseEntity<byte[]>(imageContent, headers, HttpStatus.OK);
}

我的代码类似于此处建议的解决方案(请参见this answerthis one),但是我的模板不会显示该图像,因为其内容很可能无效。如果我直接从浏览器到达端点,将下载“ filename.jpg”图像(遵循上面的代码很有意义),但是如果我使用文本编辑器打开图像,则该图像仅包含图像的原始名称。这不是图像。

ResponseEntity的配置中肯定缺少某些内容。您可能有一些我可以阅读的有关该过程的文档,因为我不完全了解发生了什么。

0 个答案:

没有答案