【问题标题】:How to display a picture from a database in Spring?如何在 Spring 中显示数据库中的图片?
【发布时间】:2021-05-27 10:24:08
【问题描述】:

我知道这是一个愚蠢的问题,在互联网上你可以找到如何做到这一点的例子,但基本上我发现了一些太混乱的代码,我什么都不明白...... 我在本地主机上有一个博客数据库,我在那里成功上传了帖子的所有信息(名称、日期、文本和图片)。但我通常无法弄清楚如何从那里显示它。也许有人不会太懒,至少展示一部分代码或想法本身......这里我有一个控制器,我将信息加载到数据库中

@PostMapping("addArticle")
public String postAddArticle(@AuthenticationPrincipal User user, Date timeArticle, @RequestParam String title, String author,
                             @RequestParam String anons, @RequestParam String text,
                             @RequestParam("file") MultipartFile file, Model model) {
    Byte[] bArray = null;

    author = user.getUsername();

    Calendar calendar = Calendar.getInstance();
    timeArticle = calendar.getTime();

    try {
        bArray = new Byte[file.getBytes().length];
        int i = 0;
        for(byte b : file.getBytes()){
            bArray[i++] = b;
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

    Post post = new Post(title,timeArticle, author, anons, text, bArray );
    post.setTitle(title);
    post.setTimeArticle(timeArticle);
    post.setAuthor(author);
    post.setAnons(anons);
    post.setText(text);
    post.setImage(bArray);
    postRepository.save(post);

    return "redirect:/adminPage";
}

代码有效,所有内容都成功添加到数据库中,包括图像。现在告诉我如何在img标签中用thymeleaf显示?

【问题讨论】:

  • 只是附注 - 不要将图像存储在数据库中。
  • 我应该把它存放在哪里?以及为什么无法存储在数据库中?我真的不知道,我是新手
  • 可能在硬盘上,也可能在云服务上。一切都取决于部署,但它通常存储为任何其他文件资源。
  • 为什么不能存入数据库?如果我将这些图片存储在我的硬盘上并以某种方式将这些图片显示在本地主机上,那么如果我将我的项目上传到 github 并且他们下载它以检查一切是否正常,人们怎么能看到它们......
  • 数据库的暴露方式相同。本地存储是应用程序部署的本地存储,并非总是您的工作站。

标签: java spring spring-boot spring-data


【解决方案1】:

在 web 应用程序中,通常您会将图像添加到资源文件夹,然后这些图像将通过应用程序访问,如果这适合您,请参考: images as static resources。因此,一旦这个应用在部署后被打包和提取,图像路径将被解析并可以在浏览器上看到。

如果您想将图像存储在数据库中,您可以尝试将它们保存为数据库中的 base64 编码字符串,因为您可以使用以下命令: base64 conversion

【讨论】:

  • @Deniss Zadorozhniy,由于您是新用户,我忘了告诉您,但您已经接受了答案,这样您就可以在这里扩大您的网络和声誉
猜你喜欢
  • 2014-09-21
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多