如何在Spring MVC中使用绝对路径加载图像?

时间:2017-01-19 14:57:48

标签: java spring jsp spring-mvc

我的文件服务器上有图像,以及存储在数据库中的图像的位置。我们说我的所有图片都存储在文件夹

C:\Users\myuser\Desktop\images\

我的数据库中有以下行

C:\Users\myuser\Desktop\images\image1.png C:\Users\myuser\Desktop\images\image2.png

我想在JSP页面上显示图像,通过注释使用Spring MVC

我已为图像文件夹

配置了资源处理程序
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/images/**").addResourceLocations("file:C:/Users/myuser/Desktop/images/");
}

并且我将从数据库加载的文件路径传递给jsp文件

这里是我想要展示的方式

<c:forEach var="imgPath" items="${imagesList}">
    <img src="/images/${imgPath}" alt="">
</c:forEach>

我尝试在数据库中保存文件名,或者删除/images/资源处理程序,并且非方法可以正常工作。我应该如何存储我的文件名,以及如何从计算机上的某个绝对路径访问文件?

2 个答案:

答案 0 :(得分:3)

请修正以下内容并尝试:

  1. 修复路径:
  2. 对于Windows文件系统,请使用3个斜杠。

    file:///C:/Users/mainserver/Desktop/images/

    1. 修复数据库条目:
    2. 只需存储图像的名称(例如image1.png,image2.png等),而不是整个路径。

答案 1 :(得分:1)

查看src标记的<img>属性的结果值。看起来就像这样:/images/C:\Users\myuser\Desktop\images\image1.png显然是错的。它应该是/images/image1.png

  

我尝试在数据库中保存文件名

如果它不起作用那么还有另一个问题需要解决。但是这种方法是正确的,在数据​​库中你应该只有文件名而没有别的东西。