Кэшируется картинка и 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>

