Я создаю форму ввода, которая позволяет пользователям загружать изображение. После того, как он был отправлен, пользователь возвращается в форму с бит конформации вверху.
Любое изображение, которое было отправлено, затем просматривается через запрос к базе данных 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 MYH: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";?>