使用jsp加载存储在web文件夹内的文件夹中的图像

时间:2016-04-23 20:07:39

标签: image jsp

我有一个网络项目,我在项目的web文件夹中有了uploadImage。我想加载uploadImage文件夹里面的图像。我在Tomcat服务器中部署war文件。我编码如下

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

但不显示图像。复制粘贴时,浏览器图像中的路径显示正确。你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

不利
  • 安全
  • 备份
  • 更新
  • 重新部署

而是上传到其他位置并包含下载servlet。

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

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