如何在覆盖时让我的页面更新图像

时间:2018-05-17 14:01:00

标签: java image

我试图在最终用户想要的时候覆盖并更新页面上的图像。他们只需上传一个新图像,它将用相同的文件名替换旧图像,然后网页中的src路径不需要更改。但是,它有点工作。该文件将被覆盖。但是当我刷新页面时,图像不会变为新的。奇怪的是,当我进入我的IDE(Eclipse)并双击新的图像文件时,那么我可以刷新网页并显示新替换的网页。这是我的第一个工作项目,我在其他地方找不到答案。我将提供代码;

<img th:src="@{/img/uploadedFile.jpg}" alt="image"></img>

    @RequestMapping(method=RequestMethod.POST, value="image")
        public String processImageForm(@RequestParam("file") MultipartFile file, 
            RedirectAttributes redirectAttributes) {


        if (file.isEmpty()) {
            redirectAttributes.addFlashAttribute("message", "Please select a file to upload");
            return "redirect:image";
        }

        String extension = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        Path path = Paths.get(UPLOADED_FOLDER + fileName + extension);

        try {
            Files.deleteIfExists(path);

        } catch (IOException | SecurityException e) {
            System.err.println(e);
        }

         try {
                // Get the file and save it somewhere
                byte[] bytes = file.getBytes();
                Files.write(path, bytes);

               redirectAttributes.addFlashAttribute("message", "You     successfully uploaded '" + file.getOriginalFilename() + "'");

            } catch (IOException e) {
                e.printStackTrace();
            }

        return "redirect:image";
    }

}

1 个答案:

答案 0 :(得分:0)

我的猜测是你没有将该文件复制到正确的位置。

您知道在Web应用程序中创建war文件,然后将其部署在服务器上。因此,为了更改您需要在服务器上更改它的内容(即使从Eclipse运行,它也会从您创建服务器上下文)。我猜你的问题来自哪里 - 你把文件复制到了错误的地方。

当您从Eclipse运行时,文件已在本地文件系统上正确替换,但这并未更改已部署的war应用程序。当您在Eclipse中双击它时,它会注意到更改并自动重新部署它,基本上可以更改服务器上的文件。