在重新启动tomcat之前,无法显示上传的图像

时间:2018-11-26 18:26:53

标签: java jsp tomcat servlets

我的问题是,当我从一个jsp上传图像并转到另一个应该显示上传图像的jsp时却没有显示图像。该图像已上传并保存在我的服务器中,我引用了正确的路径,但是要查看该图像,我只需要重新启动tomcat。 这是我的上传器servlet(我认为它可以正常工作,因为保存了图像):

        // Get file from form
        Part part = request.getPart("cartel");  
        // Path     
        String ruta_local = getServletContext().getInitParameter("local_path");
        String img_dir = getServletContext().getInitParameter("img_directory");

        // Image name
        String fileName = extractFileName(part);

        // Add random number to image name
        Random rand = new Random();
        int random_numbers = rand.nextInt(1000);

        fileName = NameOrExtension(fileName, "nombre") + String.format("%03d", (random_numbers))
        + "." + NameOrExtension(fileName, "extension");
        request.getSession().setAttribute("foto", fileName);

        // Final path
        String cartel_path = ruta_local + File.separator
                + img_dir + File.separator + fileName;      


        File cartel = new File(cartel_path);

        // File write
        try (InputStream input = part.getInputStream()){
            Files.copy(input, cartel.toPath());
            input.close();
        }

图像保存在WebContent文件夹中的img-carteles forlder中,当我尝试显示知道他名字的图像时,我使用:

<img class="card-img-top" src="img-carteles/image_name" alt="Card image cap">

所以我认为这是tomcat的渲染问题。 问题:如何显示和上传图像而不必重启tomcat?

1 个答案:

答案 0 :(得分:0)

此答案与Uploaded image only available after refreshing the page

中的@BalusC答案相同

简而言之,上载的映像不应保存在部署文件夹中。

只需将img-carteles目录的目录更改为部署文件夹之外的目录即可解决该问题。