本文主要是介绍解决上传图片后图片回显的缓存问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在重构项目的时候,发现上传图片之后,因为后台返回的图片地址和原来的一样,回显的图片没有改变,而是显示浏览器缓存的旧图片。
从根本上解决这个问题就是在图片路径带上一个时刻变化的参数,比如当前时间的时间戳。
/*** 图片上传* @param file MultipartFile对象* @param directory 文件上传目录* @return String 图片的相对路径*/public String upload(MultipartFile file, String directory) throws IOException {boolean result = check(file);if (result) {// 得到请求参数中的数据IDString 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;}
这是图片上传工具类的上传图片的代码,在图片路径后面拼接了当时间戳,这样浏览器就不会从缓存中获取图片了,而是获取最新的图片~
这篇关于解决上传图片后图片回显的缓存问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!