当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring Boot显示从数据库接收的Blob图像

商柏
2023-03-14

亲爱的社区,你好。当我试图通过Base64显示从MySQL收到的图片时,我遇到了一个问题。图像上传和存储在数据库没有问题。

我的模型类:

@Entity
public class PostModel {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column (name = "title")
private String title;

@Column (name = "preview")
private String preview;

@Column (name = "content")
private String content;

@Column (name = "views")
private int views;

@Lob
@Column (name = "image")
private byte[] image;

//Getters and setters

控制器:

    @GetMapping("/blog/{id}")
    public String showContent(@PathVariable(value = "id") long id, Model model) throws 
    UnsupportedEncodingException {
    
    if (!postRepository.existsById(id)) {
        return "redirect:/post_not_exist";
    }
    Optional<PostModel> post = postRepository.findById(id);
    ArrayList<PostModel> content = new ArrayList<>();
    post.ifPresent(content::add);
    model.addAttribute("post", content);

    
    byte[] encodeBase64 = Base64.getEncoder().encode(post.get().getImage());
    String base64Encoded = new String(encodeBase64, "UTF-8");
    model.addAttribute("contentImage", base64Encoded );
    return "post_content";
    }

和网页标签

   <img src="data:image/jpg;base64,${contentImage}"/>

对于结果,我有这个:问题元素

我做错了什么?

祝你好运。

共有1个答案

邢鸿博
2023-03-14

您需要使用 modelAndView.add 对象(“内容图像”,base64Encoded) 添加到视图中,并且还需要导入模型和视图并将方法更改为模型和视图,并使用模型和视图实例化类模型和视图和视图 = 新的模型和视图(“视图”),如下所示:

import org.springframework.web.servlet.ModelAndView;
@GetMapping("/blog/{id}")

public ModelAndView showContent(@PathVariable(value = "id") long id, Model model) throws 
UnsupportedEncodingException {

if (!postRepository.existsById(id)) {
    return "redirect:/post_not_exist";
}
Optional<PostModel> post = postRepository.findById(id);
ArrayList<PostModel> content = new ArrayList<>();
post.ifPresent(content::add);
model.addAttribute("post", content);


byte[] encodeBase64 = Base64.getEncoder().encode(post.get().getImage());
String base64Encoded = new String(encodeBase64, "UTF-8");
model.addAttribute("contentImage", base64Encoded );

ModelAndView modelAndView = new ModelAndView("view");
modelAndView.addObject("contentImage",base64Encoded );
return modelAndView;

}

这样,可以调用从`modelAndView返回的变量,如果需要,还可以添加更多值。

这里有一个链接,可以通过一些示例帮助您了解这个主题:ModelAndView

 类似资料:
  • 问题内容: 我正在尝试显示上传到MySql中“存储”表的最后5张图像。我对PHP和数据库完全陌生,并且我一直在阅读有关如何做到这一点的很多文章,但是没有运气。 我可以一次存储和显示图片,但我希望能够拥有各种各样的画廊来显示最近上传的5张照片。 任何建议或帮助将不胜感激,谢谢! 附言:我知道将图片存储到这样的数据库时不赞成这样做,但是该项目仅用于实践。 index.php get.php 问题答案:

  • 我想创建网站。我已经配置了登录“/login”和注册“/registration”页面。这个网站的主要任务是显示每个学生的时间表。现在我需要在页面“/Schedule”上显示科目列表,使用HTML-table,根据学生注册时选择的字段组和课程。我有14个不同的表格和科目列表(一个表格-一组学生)。 是否需要为每个表创建@Entity类和存储库? 如何使用注册数据显示学生信息? 页面“/计划”的控制

  • 如何在数据库中的jsp文件中显示图像? 下面的JSP代码:- 我们将从数据库中提取的图像存储在哪里? 任何人都可以帮忙吗?

  • 本文向大家介绍Java从数据库中读取Blob对象图片并显示的方法,包括了Java从数据库中读取Blob对象图片并显示的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法。分享给大家供大家参考。具体实现方法如下: 第一种方法: 大致方法就是,从数据库中读出Blob的流来,写到页面中去:   在页面中:   搞定。 第二种方法: 整个流程分为

  • 是否正确?现在,当我尝试从数据库中检索blob数据时,它每次都会更改,为什么?那么如何检索此图像呢?以下是我尝试过的代码: 我没有看到任何图像。为什么?请帮忙。谢谢

  • 问题内容: 这个问题已经在这里有了答案 : 如何从MySQL数据库检索图像并显示在html标记中 (6个答案) 4年前关闭。 我试图显示存储在数据库的BLOB列中的图像; 我使用SELECT从数据库中获取数据,不对数据进行任何转换,并显示以下内容(从仅输出以下内容的脚本中显示): 请注意,chrome正在将内容大小显示为图像的正确大小以及正确的mime类型()。在头文件和ive检查数据库中的blo