Не поворачиваются картинки на мобильном устройстве с использованием php
Есть сайт с картинками, которые подгружаются из базы данных и отображаются на сайте в ряд. Необходимо реализовать функционал поворота данных картинок. Реализовал поворот при помощи данного кода:
$image = imagecreatefromjpeg($path);
$rotate = imagerotate($image, $degree, 0);
imagejpeg($rotate, $path);
imagedestroy($image);
Проблема в том, что на компьютере данный код отлично отрабатывает и картинки поворачиваются без проблем, а вот на мобильном устройстве картинки вообще не поворачиваются. Подскажите в чём может быть причина?
Ответы (1 шт):
Отвечу на свой же вопрос. Выяснялось, что некоторые браузеры (по всей видимости большинство популярных: chrome, firefox) кешируют, выведенные на сайты картинки. То есть сохраняют их в памяти такими, какими они были загружены на сайт когда-то давно и такими же и отображают. Поэтому как бы вы фактически не изменяли картинку - в браузере эти изменения всё равно отображаться не будут. Поможет только очистка КЕША веб-содержимого (на примере браузера firefox).
Один из путей решения данной проблемы: необходимо при выводе изображения на сайт - добавлять к нему какой-либо параметр с уникальным значением (спасибо за наводку @teran), например так (если вы используете php):
<?php $name = "photo1.jpeg"; ?>
<img src="uploads/<?echo $name."?t=".time(); ?>">
Кстати говоря, в Яндекс браузере такой проблемы нет. Изначально я пользовался им на компьютере, поэтому думал, что на компьютере всё работает как надо, а на мобильном устройстве по какой-то причине поворот не отображается. Оказалось всё дело в разной работе браузеров.