如何强制图像立即显示

时间:2019-02-03 20:42:43

标签: java html spring

我正在使用这种方法上传文件:

@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";

1 个答案:

答案 0 :(得分:0)

显示图像的应用程序在替换图像之前先将其加载,因此您必须检测何时有更改。 您可以使用WatchService做到这一点,在这里已经回答了: Java how to detect file changes