2012-08-10 94 views
0

文件系統我使用這個無法加載圖像保存使用彈簧網址標籤

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/" /> 

回答

0

路徑

家庭/用戶/工作區/ .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

0

我有同樣的問題。我的要求是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的人會覺得很有幫助。

0

您應該將圖像保存在應該超出項目文件的文件夾中,因爲一旦您重新部署它,您肯定會丟失解壓目錄中的文件。

更好的是,將圖像保存在一些保存位置,我相信,您將路徑保存在數據庫中,這些圖像需要獨立於您的部署和webcontent文件夾中的目錄。