java - 如何强制图像立即出现
问题描述
我正在使用这种方法上传文件:
@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";
?
解决方案
显示图像的应用程序会在您替换它之前加载它,因此您必须检测何时发生更改。您可以使用 WatchService 执行此操作,此处已回答: Java 如何检测文件更改
推荐阅读
- php - 尝试使用 PHP 将数据发布到 IOT 设备
- c# - 启用“指定批量大小”时,Azure DevOps 版本中缺少控制台输出
- pointers - 将实现特征的数据存储在向量中
- android - 不同的风味使用不同的存储库
- magento2 - 无效的表单键。请刷新页面 - 每当我创建帐户或登录时,访客页面都会弹出此错误
- ms-access - 使用 RIGHT() 函数访问 SQL 更新案例
- java - Java - 没有迭代器分配的无重复集合
- autodesk-forge - Autodesk Forge - 在 Forge 中加载、修改和查看 Revit 模型
- java - 如何根据字符串的长度对字符串进行分组?
- ruby-on-rails - ActiveRecord::Base 的完整文档,包括实例方法列表