Перейти к основному содержимому

Изображения

Перетащите файлы в сетку вкладки Prism или нажмите «Загрузить».

Что происходит при загрузке​

  1. Файл режется на части по prism.chunk_size_mb и грузится по кускам — лимиты хостинга не мешают.
  2. Тип проверяется по содержимому, а не по расширению. Переименованный .exe не пройдёт.
  3. Имя чистится, и внутренние точки в нём заменяются на дефис: shell.php.jpg ложится как shell-php.jpg. Apache умеет выбирать обработчик по любому расширению в имени, не только по последнему.
  4. SVG санитизируется: скрипты, обработчики событий и внешние ссылки вырезаются.
  5. Картинка пересохраняется сервером — всегда, не только когда надо повернуть или уменьшить. На диск попадают наши байты, а не присланные, поэтому ни PHP-код, спрятанный в EXIF, ни GPS-координаты съёмки до хранилища не доезжают. Исключения — SVG и анимированный GIF.
  6. EXIF-ориентация применяется — снимок с телефона не ложится боком.
  7. Размер ограничивается по prism.max_dimension (по умолчанию 4096 по большей стороне), а изображения больше prism.max_pixels не принимаются вовсе.
  8. Считаются доминантный цвет и blurhash — их можно использовать фоном-заглушкой до загрузки.
  9. Дубликаты не создаются: при совпадении SHA-1 содержимого возвращается существующий элемент (prism.dedupe).
Данные EXIF не теряются

Они читаются до пересохранения и остаются в записи элемента — [[+exif.Make]], [[+exif.DateTimeOriginal]]. Из самого файла они уходят, и GPS вместе с ними, если не включена prism.keep_gps.

Кадр и точка фокуса​

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

примечание

Файл на диске меняется только при загрузке: пересохранение растра, поворот по EXIF, уменьшение по prism.max_dimension и санитизация SVG. Всё, что настраивается позже, — кадр, водяные знаки, фильтры — живёт в превью и оригинал не трогает.

Разрешённые типы​

prism.image_extensions — по умолчанию jpg, jpeg, png, gif, webp, avif, svg. Максимальный размер — prism.max_upload_mb.

Имена файлов​

Небезопасные символы удаляются, путь отсекается, длина ограничивается — это не настраивается, это защита. Настраивается читаемость результата:

НастройкаПо умолчаниюЧто делает
prism.filename_translitда«Горы Кавказа.jpg» → «gory-kavkaza.jpg». Выключено — такие символы удаляются.
prism.filename_lowercaseдаВыключите, чтобы сохранить регистр исходного имени.
prism.filename_hashнетИмя заменяется на MD5 исходного: «Прайс 2026.pdf» → «6f1e…c3.pdf». Имеет приоритет над двумя предыдущими.

Расширение приводится к нижнему регистру всегда. Транслитерация приводит к нижнему регистру и имя — таблица замен построена на строчных буквах.

Куда ложатся файлы​

prism.source_id — Media Source, prism.path_template — папка внутри него. В шаблоне пути доступны {resource_id}, {yyyy}, {mm}.

Разные источники для разных шаблонов и типов задаются картой prism.source_map:

{"*": 1, "3": 2, "5": {"*": 2, "video": 3, "file": 4}}

Ключ — id шаблона или *, значение — id источника или объект «тип → источник».