2016-04-23 74 views
0

我有一个web项目,并且我已经在项目的web文件夹中上传了imagesImage。我想加载一个位于uploadedImage文件夹内的图像。 Im在Tomcat服务器中部署war文件。我编码如下使用jsp加载存储在web文件夹内的文件夹中的图像

  <a href="home.jsp" class="btn btn-default bg-light-gray">Upload a new Image</a> 

     </div> 

    </div> 
    <% 
     String fname = (String) request.getAttribute("name"); 
    String pathImage = "C://bimla//Dev//java//OCRSystem//WebContent//uploadedImage//"; 
    System.out.print("uploaded image"+fname); 
     session.setAttribute("filename", fname); 
     fname = fname + ".jpg"; 
     System.out.println("with extension"+fname); 
     String path = ""; 
     if (request.getAttribute("name") != null) { 
      path = request.getAttribute("name").toString(); 
     } 
    %> 

    <div class="row"> 
     <div id = "display" class="col-lg-8 center-block modal-content"> 
     <img src="C:\\bimla\\Dev\\java\\OCRSystem\\WebContent\\uploadedImage\<%=fname%>" width="600" height="400"/> 


     </div> 

    </div> 

但图像不显示。在浏览器图像中复制粘贴路径时正确显示。你有什么主意吗?

回答

0

你的页面通过http加载(我假设)。现在幸运的是,网站(例如,通过http进入的所有内容)无法访问本地文件系统(例如,以file:///C:/开头的网址)

在相关说明中,请勿构建Web应用程序允许将文件直接上传到Web应用程序的文件夹中。这是不好的

  • 安全
  • 备份
  • 更新
  • 调动

而是上传到其他位置,包括下载的servlet。

旁注:你可能需要重复\\逃脱在各种情况下(HTML有没有这样的限制,虽然)反斜杠,但你绝对只需要单/如果您选择使用斜线作为目录分隔符(这不是你的问题虽然)

快速修复:您应该通过HTTP加载图像。假设图像与您的JSP在同一个Web应用程序中,使用<img src="<%=request.getContextPath()%>/uploadImages/<%=fname%>">(或类似的 - 您没有提供足够的信息用于确定的语句)将通过http加载图像。请注意,这只能快速修复您当前的问题。正确的解决方法是将图像上传到Web应用程序目录之外的文件夹(或数据库或存储) - 出于上述原因。

+0

虽然我删除了双线,但它仍然不显示图像 –

+0

这只是一个附注。主要信息是混合http内容和文件内容:它不起作用。 –

相关问题