Чертов Кеш созданного снипетом изобрражения
Ребята, всю голову изломал, ситуация следующая, написал снипет (как мог, в php не бог) который накладывает текст на изображение. Есть рисунок, и есть форма с именем пользователя, он отправляет форму и имя его накладывается на изображение, все работает, но если он в форме еще раз меняет имя и отправляет опять форму, ему показывается первый рисунок, хотя в папке он уже другой, то есть из кеша берется рисунок. Я и так и так пробовал, в имя добавлял дату что бы всегда новый был рисунок, так порядок, но может накопиться куча рисунков от одного юзера, не вариант, но вот с постоянно заменяемым одним рисунком кеш не показывает обновленный рисунок :( как быть? Подскажите куда копать пожалуйста?
Вот код снипета моего limagehandler
Код укоротил, он работает, вызываю на странице так:
Вот код снипета моего limagehandler
<?php
// наше изображение
$img = ImageCreateFromJPEG("uploads/img.jpg");
$thumb_file = "uploads/";
$id_user = $modx->user->get('id');
$dir = $thumb_file.$id_user;
$path = mkdir($dir, 0777);
$name = isset($_POST[name]) ? $modx->stripTags($_POST[name]): '';
// определяем цвет, в RGB
$color2 = imagecolorallocate($img, 111, 213, 232);
// указываем путь к шрифту
$font = 'site/fonts/Robotobold.ttf';
imagettftext($img, 80, 0, 730, 930, $color, $font, $name); // Имя
imagejpeg($img, $dir.'/img_'.$id_user.'.jpg', 100);
$img = $dir."/img_".$id_user.".jpg";
return $modx->setPlaceholder('img-c',$img);
$modx->cacheManager->delete($userId, array(xPDO::OPT_CACHE_KEY=>'users_data'));
Код укоротил, он работает, вызываю на странице так:
[[!limagehandler]]
<img width="100%" src="[[!+img-c]]" alt=""/>
Главное на хостинге подменяется картинка новая, но она с тем же именем, и браузер после обновления страницы показывает старую, не могу побороть эту беду. Как быть? Комментарии: 5
Имя jpg файла делайте разное, добавляйте или текущее время к нему, или случайный id, или $name в транслите — что угодно.
Да да, в имя файла делал разное, так работает, но их куча становится у пользователя в папке, место кончится быстро :)) если кто то начнет играться с именем, старый то файл уже не подменяется и не удаляется.
Либо можно добавить в img рандомные числа в качестве get параметров:
<img width="100%" src="[[!+img-c]]?213124" alt=""/>
Это интересно, спасибо, сейчас попробую.
Да, так намного лучше :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.