bitrix upload resize cache

Даже если нет прямой ссылки и налету добавляется водяной знак часто можно скачать оригинал изображения. Для примера сайт мебели Mr. Doors

В каталоге у них размещены изображения в достаточно хорошем качестве (1998 на 1427 пикселей), но с водяным знаком.

Ссылка на данный файл имеет вид: /upload/resize_cache/iblock/2d9/1999_1427_1e7a9a3edf0396df2650852cd55788420/2d9016b8a6f91649cdeff6d6beab944f.jpg

Для того что бы получить оригинал нужно убрать папку /resize_cache/ и папку с указанием размеров «ресайза» /1999_1427_*/. В итоге получим такую ссылку /upload/iblock/2d9/2d9016b8a6f91649cdeff6d6beab944f.jpg, перейдя по которой мы сможем скачать оригинал в разрешении 2000 x 1428 пикселей и без водяного знака.

Как быть?

Самый простой вариант — изменить путь к «обрезанному» изображению (изображению с водяным знаком) так, что бы не было возможности получить ссылку на оригинал.

Для начала необходимо изменить само название изображения, что бы оно не было в виде хеша. Тут все просто. Нужно включить seo шаблон в настройках инфоблока.

Далее в процессе «ресайза» можно добавить символическую ссылку на изображение, таким образом изменив путь к файлу. Примерно так:

Иногда встречаются сайты, когда, например, в каталоге изображения товаров добавляются то в анонс, то в деталку, то ресайзятся анонсы из деталки, о серьезных проблемах при смене дизайна мало кто задумывается.

Чтобы ресайзить изображения в списке товаров при выводе и когда неизвестно, детальная прилетит картинка или аноса, поможет вот этот код в шаблоне компонента в файле result_modifier.php , всю логику максимально пишем в нем, для этого он и создан.

Изображение товара выводим в template.php


Пояснения по коду

Здесь мы делаем ресайз изображений Битрикс до заданных размеров

Здесь добавляем к адресу файла метку версии файла, иначе хэш, для кэширования картинки в браузере клиента, проверьте, при повторном обновлении страницы список товаров будет заметно быстрее загружаться, практически моментально, т.к. все картинки закэшируются в вашем бразере на компьютере и при повторном запросе браузер их будет брать именно с ПК, а не с сервера, это самый простой и действенный вариант, когда нет возможности и знаний настраивать сам сервер и различные заголовки.

Результат в самом конце ?14778338342044

А эта php-функция преобразует в верхний регистр ключи массива, чтобы в едином стиле все было

Встала задачка: на собственном сайте, уменьшить размер превьюшек картинок у анонсов раздела дизайн. Само собой, перезаливать все картинки и лень и долго и глупо. Можно воспользоваться стандартной функцией битрикс CFile::ResizeImage и изменить размеры картинок на лету

Для того, чтобы отресайзерить уже загруженные изображения в нужном месте шаблона компонента, вставляем:

Параметры масштабирования и обрезки можно установить такими переменными
— BX_RESIZE_IMAGE_EXACT — масштабирует в прямоугольник $arSize c сохранением пропорций, обрезая лишнее (в примере выше именно оно);
— BX_RESIZE_IMAGE_PROPORTIONAL — масштабирует с сохранением пропорций, размер ограничивается $arSize;
— BX_RESIZE_IMAGE_PROPORTIONAL_ALT — масштабирует с сохранением пропорций за ширину при этом принимается максимальное значение из высоты/ширины, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.

Вот и все. В итоге новые, отресайзенные картинки попадут в папку /upload/resize_images и сами применятся в шаблоне.

Оцените статью