2015-10-20 198 views
0

我提到了這個Q&A,但我無法做到我想要的。檢查圖像中是否存在Java

我想顯示一個圖像,如果這個圖像的路徑存在和其他東西,如果圖像路徑不存在。所以我這樣做:

<% String filePath = photoPath + nom.toLowerCase().replace(' ', '_') +"_"+prenom.toLowerCase().replace(' ', '_') + ".jpg"; 
    Path path = Paths.get(filePath); 
    if(Files.exists(path)) { 
%> 
<img name="" src="<%=filePath %>" width="96" height="120" alt=" Photographie de <%=prenom%> <%=nom%>"> 
<% } 
else { %> 
    <%=filePath %> 
    <img name="" src="<%=filePath %>" width="96" height="120" alt=" Photographie de <%=prenom%> <%=nom%>"> 
<% 
} 
%> 

在這裏,我嘗試在if和除了我展示路徑和else圖像0​​同樣的事情。我的輸出是else語句,因此我的圖像不應該顯示,但會顯示圖像。

有什麼想法?

+1

兩個分支都使用'<%= filePath%>'? – MadProgrammer

+0

@MadProgrammer是的,這只是爲了測試圖像是否存在。問題是圖像顯示在else語句中。所以如果顯示圖像,它不應該在其他地方,對不對? –

+0

如果文件存在,則返回'else'。如果該文件存在,則將其顯示爲圖像。問題是什麼? – EJP

回答

1

問題在於filePath適用於img-src,它是相對於Web應用程序的根文件夾的路徑。對於文件系統路徑,存在getRealPath()

<% 
    String filePath = photoPath + nom.toLowerCase().replace(' ', '_') 
     +"_"+prenom.toLowerCase().replace(' ', '_') + ".jpg"; 
    Path path = Paths.get(request.getServletContext().getRealPath(filePath)); 
    if (Files.exists(path)) { 
%>