Класс: UploadedFile
Обёртка над $_FILES для multipart-загрузок в админке DevCraft.
Краткое содержание:
Обёртка над элементом $_FILES для multipart-загрузок: валидация, проверка расширения, перенос во временный/целевой путь.
Свойства
Нет публичных свойств.
Методы
- public static fromFilesKey()
- public originalName()
- public tmpName()
- public size()
- public mime()
- public toArray()
- public assertExtension()
- public moveTo()
Подробности
- Путь:
devcraft/src/classes/Http/UploadedFile.php - Namespace:
DevCraft\Core\Http
Детали
Методы
fromFilesKey()
Создаёт экземпляр из ключа $_FILES. Бросает RuntimeException, если файл не передан, код ошибки загрузки не UPLOAD_ERR_OK или временный файл недоступен.
Параметры:
$key— Имя поля в$_FILES(напримерfile).
Возвращает: self
originalName()
Возвращает: string — исходное имя файла (basename).
tmpName()
Возвращает: string — путь к временному файлу PHP.
size()
Возвращает: int — размер в байтах.
mime()
Возвращает: string — MIME из $_FILES['type'] (не доверять слепо).
toArray()
Возвращает: array — сырой элемент $_FILES.
assertExtension()
Проверяет расширение (без точки, нижний регистр) против белого списка.
Параметры:
$allowed—list<string>, например['jpg', 'png', 'webp'].
moveTo()
Создаёт каталог при необходимости и вызывает move_uploaded_file.
Параметры:
$targetPath— абсолютный путь назначения.
Пример handler
use DevCraft\Core\Http\UploadedFile;
use DevCraft\Core\Http\JsonResponse;
$uploaded = UploadedFile::fromFilesKey('file');
$uploaded->assertExtension(['jpg', 'png', 'gif', 'webp']);
$uploaded->moveTo($targetDir . '/' . $storedName);
return JsonResponse::ok(['id' => $id]);Клиент: DevCraft.Ajax.postMultipart(url, formData, onProgress?) — см. Шаблоны фронтенда.