浏览器无法清除旧的个人资料图片,Codeigniter

时间:2018-12-21 04:26:30

标签: php image codeigniter session caching

我已经成功更新了个人资料图像,但是在显示过程中显示为旧图像。 我已经在上载的文件夹中检查了新图像已被替换。 请检查我的代码

<?php $filename=base_url().'profileimage/'.$this->session->userdata['user_details']['user_id'].'.jpg'; ?>
<img src="<?php echo $filename.'?='.filemtime($filename); ?>" class="rounded" alt="" width="150" height="150">

3 个答案:

答案 0 :(得分:5)

这是浏览器缓存,因此您可以在图片网址后调用get参数, 每次调用图像时,rand都将更改,因此浏览器可以将图像作为新图像,以避免在用相同名称替换图像后缓存,或者您可以更改图像名称而不是用户ID。

请记住,每次加载页面可能会花费一些时间,因此一旦替换为新图像,最好更改图像名称。

image.jpg?randrom_no = 123

参考代码

<?php $filename=base_url().'profileimage/'.$this->session->userdata['user_details']['user_id'].'.jpg'; ?>
<img src="<?php echo $filename.'?rand='.rand(1,2000); ?>" class="rounded" alt="" width="150" height="150">

答案 1 :(得分:0)

尝试这种方式显示个人资料图片。希望它对您有用。

<img class="rounded" src="<?php
                        if ($_SESSION['userdata']['user_profile_image'] !== '' && file_exists(FCPATH . 'profileimage/' . $_SESSION['userdata']['user_profile_image'])) {
                            echo base_url() . 'profileimage' . $_SESSION['userdata']['filename'];
                        } else {
                            echo base_url() . 'dummyimage';
                        }
                        ?>" alt="" width="150" height="150">

答案 2 :(得分:0)

这不是您的代码问题。这是您的浏览器缓存问题。您需要清除浏览器缓存。如果您使用的是谷歌浏览器,则可以按 ctrl + Shift + R 刷新页面。