PHP обновить изображение

Я создаю форму ввода, которая позволяет пользователям загружать изображение. После того, как он был отправлен, пользователь возвращается в форму с бит конформации вверху.

Любое изображение, которое было отправлено, затем просматривается через запрос к базе данных MySQL, в которой хранится URL-адрес изображения. Однако, если пользователь загружает фотографию, ее просматривают, а затем они решают изменить эту фотографию и повторно отправить форму, когда она вернет вас в форму, которую новая фотография не отображается, если вы не вручную нажмете обновление в браузере.

Есть ли способ принудительно удалять или обновлять обновление или кеширование для этого конкретного изображения, а не всей страницы?

благодаря

Ответ 1

Добавьте измененную дату в конец изображения в качестве запроса.

<img src="/images/photo.png?=1239293"/>

В PHP

<img src="/images/photo.png?=<?php echo filemtime($filename)?>"/>

Ответ 2

В PHP вы можете отправить случайное число или текущую временную метку:

<img src="image.jpg?<?=Date('U')?>">

или

<img src="image.jpg?<?=rand(1,32000)?>">

Ответ 3

Трюк здесь заключается в том, чтобы сообщить браузеру не кэшировать содержимое. Вы можете сделать это, поставив эти утверждения перед любым другим (без пробелов или чего-нибудь еще!)

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

В зависимости от того, как вы загружаете изображение, вы также можете обновить javascript изображения с помощью jQuery.

Ответ 4

    You could replace the current image by a new one using JavaScript:

    <div id="imageHolder">this is where the image will show</div>
    <script type="text/javascript">
    function myfunction(){
    document.getElementById("imageHolder").innerHTML="<div id=\"imageHolder\"><img src='imagefolder/imagename.jpg' alt=''/></div>";
    }</script>

Вам нужно запустить функцию myfunction после завершения загрузки, конечно...

Ответ 5

Это отлично подействовало на меня:

image.jpg?=<?php echo rand() . "\n";?>