【问题标题】:Browser does not clear old Profile image ,Codeigniter浏览器不清除旧的个人资料图像,Codeigniter
【发布时间】:2018-12-21 04:26:29
【问题描述】:

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

<?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">

【问题讨论】:

  • 我猜那是图片的缓存版本,试试 hard-reload 或ctrl+f5
  • 您正在使用 $filename 的会话,这意味着您必须在将图像成功上传到文件夹后更新会话的文件名。

标签: php image codeigniter session caching


【解决方案1】:

这是浏览器缓存,因此您可以在图像 URL 之后调用 get 参数, 每次调用图片时,rand no 都会改变,因此浏览器可以将图片作为新图片,以避免在图片替换为相同名称后缓存,或者您可以更改图片名称而不是用户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">

【讨论】:

    【解决方案2】:

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

    <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">
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多