Ответ 1
Добавьте измененную дату в конец изображения в качестве запроса.
<img src="/images/photo.png?=1239293"/>
В PHP
<img src="/images/photo.png?=<?php echo filemtime($filename)?>"/>
Я создаю форму ввода, которая позволяет пользователям загружать изображение. После того, как он был отправлен, пользователь возвращается в форму с бит конформации вверху.
Любое изображение, которое было отправлено, затем просматривается через запрос к базе данных MySQL, в которой хранится URL-адрес изображения. Однако, если пользователь загружает фотографию, ее просматривают, а затем они решают изменить эту фотографию и повторно отправить форму, когда она вернет вас в форму, которую новая фотография не отображается, если вы не вручную нажмете обновление в браузере.
Есть ли способ принудительно удалять или обновлять обновление или кеширование для этого конкретного изображения, а не всей страницы?
благодаря
Добавьте измененную дату в конец изображения в качестве запроса.
<img src="/images/photo.png?=1239293"/>
В PHP
<img src="/images/photo.png?=<?php echo filemtime($filename)?>"/>
В PHP вы можете отправить случайное число или текущую временную метку:
<img src="image.jpg?<?=Date('U')?>">
или
<img src="image.jpg?<?=rand(1,32000)?>">
Трюк здесь заключается в том, чтобы сообщить браузеру не кэшировать содержимое. Вы можете сделать это, поставив эти утверждения перед любым другим (без пробелов или чего-нибудь еще!)
<?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.
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 после завершения загрузки, конечно...
Это отлично подействовало на меня:
image.jpg?=<?php echo rand() . "\n";?>