Перейти к содержанию

Класс: UploadedFile

Краткое содержание:

Обёртка над элементом $_FILES для multipart-загрузок: валидация, проверка расширения, перенос во временный/целевой путь.


Свойства

Нет публичных свойств.


Методы


Подробности

  • Путь: 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()

Проверяет расширение (без точки, нижний регистр) против белого списка.

Параметры: - $allowedlist<string>, например ['jpg', 'png', 'webp'].

moveTo()

Создаёт каталог при необходимости и вызывает move_uploaded_file.

Параметры: - $targetPath — абсолютный путь назначения.


Пример handler

PHP
1
2
3
4
5
6
7
8
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?) — см. Шаблоны фронтенда.