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

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

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

    /**
     * 图片上传
     * @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;
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值