无法加载图像保存使用弹簧网址标签

问题描述:

文件系统我使用这个无法加载图像保存使用弹簧网址标签

saveImage(context.getRealPath("/resources/image.jpg"), image); 

保存上传的图像在我的控制器,然后尝试使用此

<img src="<c:url value="/resources/image.jpg"/>" /> 
加载在JSP图像

我能够在浏览器地址栏中

home/user/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/SpringMVCTest/resources/image.jpg 

以此来访问图像,但图像不LOA在jsp中,只有一个断开的链接图像。

我还使用<mvc:resources mapping="/resources/**" location="/resources" />来提供静态内容。

为什么这不起作用?

微不足道的答案。一切都是正确的,除了我的

<mvc:resources mapping="/resources/**" location="/resources" /> 

错过了一个 “/” 应该是

<mvc:resources mapping="/resources/**" location="/resources/" /> 

路径

家庭/用户/工作区/ .metadata/.plugins /组织。 eclipse.wst.server.core/tmp1/wtpwebapps/SpringMVCTest/resources/image.jpg

是你服务器的文件sy干路径,您的客户端将无法访问它,

而是把图像在公共网络区域,并给予相对路径例如

/contextofyourweb/images/1.jpeg 

或创建ImageServlet从服务器文件中读取文件系统,并把它给servlet响应

相关:

+0

我只给出文件系统路径来显示正在保存的图像。我的控制器映射到“/”,因此使用资源标签。当图像被保存到/contextofmyweb/resources/image.jpg为什么不能从那里检索? – AlyoshaKaramazov 2012-08-10 08:04:03

+0

好的,那么它与公共Web区域有关吗? – 2012-08-10 08:05:11

+0

我的应用程序中没有公共Web区域。 – AlyoshaKaramazov 2012-08-10 08:07:55

我有同样的问题。我的要求是Html5和Jquery的观点,没有JSP。我有春MVC应用程序,模拟C语言编写的一个服务器

我的Spring MVC的配置:

<mvc:resources mapping="/resources/**" location="/resources" /> 

由于我无法使用标签,我发现了一个jQuery的解决方案,它的工作原理:

$(function(){ 
     var ctxRoot = window.location.pathname; 
     var imgBtn1Url="/"+ctxRoot.split("/")[1]+"/resources/img/glyphs/glyphicons_173_play.png"; 
     alert(imgBtn1Url) 
     $('#imgBtn1').attr('src', imgBtn1Url); 
    }); 

HTML:<img id="imgBtn1" alt="" data-src="holder.js/300x200" class="thumbnail" />

在我的情况ctxRoot = /蝮蛇/因为用于弹簧分派器servlet的URL图案的配置。在你的情况下,location.pathname可能就足够了。

<servlet-mapping> 
     <servlet-name>conf</servlet-name> 
     <url-pattern>/config/*</url-pattern> 
    </servlet-mapping> 

我希望其他使用Spring MVC的人会觉得很有帮助。

您应该将图像保存在应该超出项目文件的文件夹中,因为一旦您重新部署它,您肯定会丢失解压目录中的文件。

更好的是,将图像保存在一些保存位置,我相信,您将路径保存在数据库中,这些图像需要独立于您的部署和webcontent文件夹中的目录。