在image元素中使用absolutepath作为源

时间:2013-01-16 11:44:01

标签: web-applications tomcat6 image absolute-path

我的jsp页面中有一个简单的img元素,必须使用放置在webapp上下文外部的图像作为源...

我做了类似的事情:(从servlet生成并使用JSTL设置的路径)

<img src="C:/somewhere/32x32/userXX.png" class="member-box-avatar">

但我总得到的是http://myhost//myapp/C:/somewhere/32x32/userXX.png所以图片没有出现,有没有办法解决这个问题?

我使用tomcat6作为服务器,我已经尝试了前进和后退斜杠

相关代码部分:

     <c:choose>
            <c:when test="${empty guest}">
    <img src="${foto}${user.username}.png" class="member-box-avatar" />
            </c:when>
            <c:otherwise>
<img src="img/guest.png" class="member-box-avatar" />                                        
            </c:otherwise>
        </c:choose>

$ {foto}包含绝对路径“C:\ mypath \ 32x32 \”(我尝试过任何类型的斜杠组合)

2 个答案:

答案 0 :(得分:0)

使用

<img src="<%=request.getContextPath()%>/your/image/dir/image.png">

如果它托管在您的应用上下文中。

否则使用

1.IFrame渲染其他图像的图像网址

2.使用Ajax / jQuery异步渲染图像

答案 1 :(得分:0)

由于这个原因,我一直在努力奋斗。 我用这个技巧搞定了。

<a href="edit?action=showImageFull&url=C:/Users/Noir/Desktop/WorkSpaceEclipseNeu/w_mvc_3/WebContent/imgfolder/${imgageimage.time}.jpg" target="_parent">
<img  src="http://localhost:8080/w_mvc_3/edit?action=showImageFull&url=C:/Users/Noir/Desktop/WorkSpaceEclipseNeu/w_mvc_3/WebContent/imgfolder/${imgageimage.time}-thumb.jpg"width="150" height="100">

在Java环境中

String action = request.getParameter(“action”);

    if(action.equals("showImageFull")) {            
        try {
             String url = request.getParameter("url");

                response.setContentType("image/jpeg");  
                ServletOutputStream out;  
                out = response.getOutputStream();  
                FileInputStream fin = new FileInputStream(url);  

                BufferedInputStream bin = new BufferedInputStream(fin);  
                BufferedOutputStream bout = new BufferedOutputStream(out);  
                int ch =0; ;  
                while((ch=bin.read())!=-1)  
                {  
                bout.write(ch);  
                }  

                bin.close();  
                fin.close();  
                bout.close();  
                out.close();  

        } catch (BookNotFoundException e) {
            RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/error.jsp");
            dispatcher.forward(request, response);
        }               
    }

这用于显示缩略图和显示完整图像。 我希望它有所帮助。