0
点赞
收藏
分享

微信扫一扫

解决上传图片后图片回显的缓存问题

Sikj_6590 2024-08-23 阅读 27

今天在重构项目的时候,发现上传图片之后,因为后台返回的图片地址和原来的一样,回显的图片没有改变,而是显示浏览器缓存的旧图片。

从根本上解决这个问题就是在图片路径带上一个时刻变化的参数,比如当前时间的时间戳。

    /**
* 图片上传
* @param file MultipartFile对象
* @param directory 文件上传目录
* @return String 图片的相对路径
*/

public String upload(MultipartFile file, String directory) throws IOException {
boolean result = check(file);

if (result) {
// 得到请求参数中的数据ID
String id = HttpUtils.getRequest().getParameter("id");

// 获取文件名
String originalFilename = file.getOriginalFilename();
assert originalFilename != null;
String fileName = getBase(directory.charAt(1) + "") + Integer.parseInt(id)
+ StringUtils.getFileType(originalFilename);
// 创建目标对象
File targetFile = new File(root + directory, fileName);

// 保存文件
file.transferTo(targetFile);

StringBuilder url = new StringBuilder();

url.append(directory).append("/").append(fileName);
// 解决图片缓存问题
url.append("?timestamp=").append(System.currentTimeMillis());

return url.toString();
}

return null;
}

这是图片上传工具类的上传图片的代码,在图片路径后面拼接了当时间戳,这样浏览器就不会从缓存中获取图片了,而是获取最新的图片~

举报

相关推荐

0 条评论