使用动态Web项目中工作区外部的文件路径来显示图像?

问题描述 投票:0回答:1

我想使用Servlet将用户提供的图像存储在动态Web项目的工作空间之外,我可以这样做,但是一旦将图像存储到其他目录后,我将无法在屏幕上显示该图像。 >

如果我将其存储在WebContent -- images中,则它可以正确地与路径/App/images/abc.jpg一起使用-但它会产生问题,因为除非我在该目录上刷新,否则图像不会得到反映。

使用其他目录中的图像时将遵循哪些约定?我现在将其保存在D:/pics中并与fileName并置。

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
        System.out.println("-------IMAGE-UPLOAD--------");
        Part filePart = request.getPart("USER_IMG");
        String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
        String folderPath = getServletContext().getInitParameter("imageLocation");//{D:/pics/}
        String filePath = folderPath + fileName;

        File file = new File(filePath);

        try (InputStream input = filePart.getInputStream()) {
                Files.copy(input, file.toPath());
            }

        sql = String.format(UPDATE_IMG_PATH, filePath, USER_ID);
    }
            

我想使用Servlet将用户提供的图像存储在动态Web项目的工作空间之外,我可以做到,但是一旦将图像存储到...,我将无法在屏幕上显示该图像。 >

我认为您面临的问题与您需要执行的两个动作有关。第一个是保存图像第二个是显示图像。

所以问题是您尝试在保存图像之前显示图像,因为在大多数情况下,执行Servlet方法的时间较长。

现在解决方案是您必须找到一种方法来取回文件并在准备好文件时将其显示(保存到文件夹中)。您必须间隔刷新文件夹并显示其中的图像。您可以尝试在存储图像并显示时以某种方式进行回调。

java jsp servlets
1个回答
0
投票

我认为您面临的问题与您需要执行的两个动作有关。第一个是保存图像第二个是显示图像。

© www.soinside.com 2019 - 2024. All rights reserved.