我正在使用这种方法上传文件:
@Override
public void store(MultipartFile file, AnimalEntity animalEntity) {
String filename = animalEntity.getNameString() + animalEntity.getAge() + ".jpg";
try (InputStream inputStream = file.getInputStream()) {
Files.copy(inputStream, this.rootLocation.resolve(filename), StandardCopyOption.REPLACE_EXISTING);
}
} catch (IOException e) {
throw new StorageException("Failed to store file " + filename, e);
}
并显示带有以下内容的图像:
<img alt="" src="" th:alt="${dog.id}" th:src="@{${dog.getNameString()} + ${dog.getAge()} + '.jpg'}">
仅在重新启动应用程序之后,图像才可见。我不知道为什么以及如何解决这个问题。
顺便说一句 我该如何指向文件而不是使用整个路径:
private String location = "C:\\Users\\XXX\\Documents\\Projekty\\IntelliJ\\shelter\\src\\main\\resources\\static\\photos";
?
答案 0 :(得分:0)
显示图像的应用程序在替换图像之前先将其加载,因此您必须检测何时有更改。 您可以使用WatchService做到这一点,在这里已经回答了: Java how to detect file changes