Download the PHP package karelwintersky/arris.php-file-upload without Composer
On this page you can find all versions of the php package karelwintersky/arris.php-file-upload. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download karelwintersky/arris.php-file-upload
More information about karelwintersky/arris.php-file-upload
Files in karelwintersky/arris.php-file-upload
Package arris.php-file-upload
Short Description Powerful PHP8 file upload library with validation, conversion, and fluent interface
License MIT
Informations about the package arris.php-file-upload
FileUpload - PHP8 File Upload Library
Библиотека для загрузки файлов с валидацией, конвертацией изображений и Fluent Interface.
Требования
- PHP 8.2+
- ext-fileinfo
- ext-gd (опционально, для конверсии изображений)
Установка
Быстрый старт
Два этапа загрузки
1. uploaded() — проверка первичной загрузки
Проверяет is_uploaded_file(), выполняет полную валидацию (MIME, размер, кастомные валидаторы).
Возвращает FileUploadResult с stage=uploaded. На этапе uploaded уже доступны size и mimeType.
2. process() — конверсия, сохранение
Если uploaded() уже вызван и прошёл успешно — process() пропускает валидацию (флаг validated).
Если вызван напрямую — выполняет валидацию сам.
Конфигурация
Дефолтный конфиг (один раз при бутстрапе)
Опция через applyOption()
Fluent-конфигурация на инстансе
Валидация
Встроенные валидаторы
Кастомные валидаторы
Функции-коллбэки, которые принимают массив файла и возвращают:
true— валидация пройденаfalse— валидация не пройдена, в ошибки запишется дефолтное сообщение "Ошибка валидации файла"- строка — валидация не пройдена, в ошибки запишется указанная строка
Порядок и collect-all
Валидация выполняется в следующем порядке:
- Прекондишины (fail-fast): файл не задан → не загружен через HTTP → PHP upload-ошибка
- Встроенные валидаторы: MIME-тип → минимальный размер → максимальный размер
- Кастомные валидаторы: все по порядку
Встроенные и кастомные валидаторы работают в режиме collect-all: все проверки выполняются, все ошибки собираются. Пользователь видит все проблемы сразу, а не только первую попавшуюся.
Конверсия изображений
Конвертирует изображение из одного формата в другой при перемещении в storage.
Для этого нужно указать целевой mime-тип и качество. Третий параметр $force заставляет применить конвертер даже если целевой mime-тип совпадает с исходным — это позволяет приводить загруженные фотографии к общему стандарту (пережатие).
Принудительная конвертация ($force)
Кастомный конвертер
Поддерживаемые форматы
| Формат | Источник | Цель |
|---|---|---|
| JPEG | yes | yes |
| PNG | yes | yes |
| GIF | yes | yes |
| WebP | yes | yes |
| BMP | yes | — |
Система ошибок
Коды ошибок
Каждая ошибка имеет код FileUploadErrorCode (backed enum). Доступны через getErrorStack():
Трансляция сообщений
getErrors() возвращает массив человекочитаемых строк (через FileUploadErrorMessages):
Кастомизация сообщений
Параметры в шаблонах: {mime_type}, {message} — подставляются из params.
Локализация (i18n)
Встроенные locales: ru (по умолчанию) и en.
Обработка ошибок
Тихий режим (по умолчанию)
Режим исключений
Множественная загрузка
FileUploadResult
Объект возвращаемый uploaded() и process().
| Поле | Тип | Описание |
|---|---|---|
isSuccess |
bool |
Успешность операции |
stage |
string\|null |
'uploaded' или 'processed' |
originalName |
string\|null |
Оригинальное имя файла |
savedName |
string\|null |
Имя файла в storage |
path |
string\|null |
Путь к каталогу storage |
fullPath |
string\|null |
Полный путь к файлу |
mimeType |
string\|null |
MIME-тип |
size |
int\|null |
Размер в байтах |
lastError |
string\|null |
Последняя ошибка |
errors |
array |
Массив ошибок |
radix |
string\|null |
Имя файла без расширения |
extension |
string\|null |
Расширение без точки |
width |
int\|null |
Ширина (image/*) |
height |
int\|null |
Высота (image/*) |
Доступные опции
| Опция | Тип | Описание |
|---|---|---|
targetPath |
string |
Каталог для сохранения |
allowedMimeTypes |
array |
Разрешённые MIME-типы |
maxFileSize |
int |
Максимальный размер (байты) |
minFileSize |
int |
Минимальный размер (байты) |
filenameGenerator |
callable |
Генератор имени файла fn(string $name, array $file): string |
throwExceptions |
bool |
Бросать FileUploadException вместо возврата ошибки |
validators |
array |
Массив callable-валидаторов |
targetMimeType |
string |
Целевой MIME-тип для конверсии |
targetImageQuality |
int |
Качество конверсии (0-100) |
locale |
string |
Локаль для сообщений ошибок ('ru' или 'en') |
Вспомогательные классы
Все вспомогательные классы находятся в неймспейсе Arris\Toolkit\FileUpload\*.
ImageConvertor
Конвертирует изображения между форматами (GD). Fluent API:
Поддерживаемые конверсии: JPEG, PNG, GIF, WebP, BMP → JPEG/PNG/GIF/WebP.
MediaProbe
Обёртка над ffprobe для получения метаданных медиафайлов:
Возвращает MediaProbeResult (readonly value object) или null при ошибке.
Helper
Статический хелпер для работы с размерами файлов и лимитами загрузки:
Лицензия
MIT License
All versions of arris.php-file-upload with dependencies
ext-fileinfo Version *
ext-gd Version *