【问题标题】:images are not comming up on user product page图片没有出现在用户产品页面上
【发布时间】:2022-01-21 12:41:58
【问题描述】:

当我在产品的管理页面上添加图像时。它正在成功上传并且上传的图像反映(保存)在正确的文件夹中

但是当我运行用户门户并看到产品时。产品图片未显示

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addBookPost(@ModelAttribute("book") Book book, HttpServletRequest request) {
    bookService.save(book);

    MultipartFile bookImage = book.getBookImage();

    try {
        byte[] bytes = bookImage.getBytes();
        String name = book.getId() + ".png";
        BufferedOutputStream stream = new BufferedOutputStream(
                new FileOutputStream(new File("src/main/resources/static/image/book/" + name)));
        stream.write(bytes);
        stream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return "redirect:bookList";
}

Product Page image issue < you can find it Here>

【问题讨论】:

  • 如果您能向我们提供有关您如何显示图像的更多信息,将会很有帮助; 标签要具体。
  • 当您在浏览器中查看源代码时,src 的图像标签包含什么?
  • 在浏览器中我是这样 localhost:8081/adminportal/image/book9.png">
  • 我认为如果您通过 localhost:8081 获取图像,则必须将其放在 /public 文件夹中

标签: spring spring-mvc thymeleaf spring-thymeleaf


【解决方案1】:

问题在于您保存图像的路径。

当应用程序运行时,它会忽略src 目录并引用target 目录,并且您的图像正在上传到src/main/java/resources/static/image。如果手动将图片复制到target/classes/static/image路径下,图片会正常显示。

而且我绝对不建议将图像保存在 target 目录中,因为执行 maven clean 会删除该目录。要尝试一下,请在项目的根目录中打开终端/命令提示符并执行命令mvn clean

我强烈建议您将图像保存在其他位置,例如“C:\projectName\images”,并通过application.properties 或通过保存在数据库中的配置来配置路径。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签