Кэшируется картинка и html не выводит обновленную

Написал программу которая берёт картинку и немножко изменяет её, но при выводе обновленной картинки выводится старая, поесть сколько бы я раз её не выводил, выводится всегда первоначальный вариант картинки. Я так понимаю, что дело в кэше, но пробуя вписать response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate") ситуация не изменилась. Тоесть как должно быть я беру картинку и изменяю ( наложил на неё другую картинку ) и сразу после загрузки картинки, которую я хочу наложить, я хочу увидеть не старый вариант первоначальной картинки а новый, но почему то выводится только старый, вплоть до того пока я не перезабуду проект. Картинка как и html файл находятся в static файлах. Контроллер:

@PostMapping("/upload")
    public String handleFileUpload(
                            @RequestParam("file") MultipartFile file,
                            @RequestParam("x") String x,
                            @RequestParam("y") String y,
                            @RequestParam("id") String id,
                            Model model){
        if (!file.isEmpty()) {
            String nameFragment = imageOverlay.createFragment(file); //Генерируем имя фрагмента и создаем его на компьютере
            imageOverlay.impose(nameFragment,Integer.valueOf(x),Integer.valueOf(y),id);
            model.addAttribute("id",id);
        } else {
            return "Вам не удалось загрузить потому что файл пустой.";
        }
        return "redirect:/showPapyrus";

    }
    @GetMapping("/showPapyrus")
    public String showPapyrus(final HttpServletResponse response,Model model){
        model.addAttribute("id",19);
        response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires", 0);
        return "showPapyrus";
    }

Методы для соединения картинок

public boolean impose(String name,int x,int y,String id){
        File file = new File("src/main/resources/static/image/papyrus"+id+".bmp");
        File file2 = new File("src/main/resources/static/image/"+name);
        try {
            BufferedImage bi = ImageIO.read(file);
            BufferedImage pic = ImageIO.read(file2);
            Graphics2D graphics2D = bi.createGraphics();
            graphics2D.drawImage(pic, x, y, null);
            graphics2D.dispose();
            ImageIO.write(bi, "bmp", file);
            //graph.drawImage();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return true;
    }
    public String createFragment(MultipartFile file){
        try {
            byte[] bytes = file.getBytes();
            String name = nameGenerator.generateName();
            BufferedOutputStream stream =
                    new BufferedOutputStream(new FileOutputStream(new File("src/main/resources/static/image/"+name)));
            stream.write(bytes);
            stream.flush();
            stream.close();
            return name;
        } catch (Exception e) {
            return "Вам не удалось загрузить ";
        }
    }

html:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
    <meta charset="utf-8">
    <title>Тег IMG</title>
</head>
<body>

<img th:src="@{${'/image/papyrus'+id+'.bmp'}}"/>

</body>
</html>

Страница с загрузкой картинки, которая будет наложена на выбранную по id картинку

введите сюда описание изображения


Ответы (0 шт):