РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
799 of 1392 menu

Класс UploadedFile

Класс UploadedFile является расширением PHP-класса SplFileInfo и представляет файл, загруженный через HTTP-запрос. Он предоставляет удобные методы для получения информации о файле, проверки его валидности и сохранения в файловую систему. Объект этого класса автоматически создаётся для каждого загруженного файла, переданного в запросе.

Получение загруженного файла

Чтобы получить загруженный файл в контроллере, нужно обратиться к объекту запроса через метод file или через динамическое свойство:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class FileController extends Controller { public function upload(Request $request) { // Способ 1: через метод file $file = $request->file('document'); // Способ 2: через динамическое свойство $file = $request->document; // Проверка наличия файла if ($request->hasFile('document')) { // Файл существует } } } ?>

Синтаксис

<?php use IlluminateHttpUploadedFile; // Метод для сохранения файла $path = $file->store($path, $disk); $path = $file->storeAs($path, $name, $disk); $path = $file->storePublicly($path, $disk); // Методы для получения информации $name = $file->getClientOriginalName(); $ext = $file->getClientOriginalExtension(); $mime = $file->getMimeType(); $size = $file->getSize(); $hash = $file->hashName(); $valid = $file->isValid(); ?>

Пример

Давайте сохраним загруженный файл в локальное хранилище:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class FileController extends Controller { public function upload(Request $request) { if ($request->hasFile('document')) { $file = $request->file('document'); if ($file->isValid()) { // Сохраняем файл $path = $file->store('documents', 'public'); return "File saved to: " . $path; } } return "No file uploaded"; } } ?>

Результат выполнения кода:

"File saved to: documents/abc123def456.jpg"

Пример

Сохраним файл с пользовательским именем, указав расширение:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class FileController extends Controller { public function upload(Request $request) { if ($request->hasFile('document')) { $file = $request->file('document'); $path = $file->storeAs( 'avatars', 'user_avatar.' . $file->getClientOriginalExtension(), 'public' ); return "File saved as: " . $path; } return "No file uploaded"; } } ?>

Результат выполнения кода:

"File saved as: avatars/user_avatar.jpg"

Пример

Получим информацию о загруженном файле:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class FileController extends Controller { public function info(Request $request) { if ($request->hasFile('document')) { $file = $request->file('document'); $name = $file->getClientOriginalName(); $ext = $file->getClientOriginalExtension(); $mime = $file->getMimeType(); $size = $file->getSize(); $hash = $file->hashName(); echo "Original name: " . $name . "\n"; echo "Extension: " . $ext . "\n"; echo "MIME type: " . $mime . "\n"; echo "Size (bytes): " . $size . "\n"; echo "Generated hash: " . $hash . "\n"; } } } ?>

Результат выполнения кода:

"Original name: photo_2026.jpg" "Extension: jpg" "MIME type: image/jpeg" "Size (bytes): 245678" "Generated hash: 9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c.jpg"

Смотрите также

  • метод store,
    который сохраняет файл в хранилище
  • метод storeAs,
    который сохраняет файл с указанным именем
  • метод getClientOriginalName,
    который возвращает оригинальное имя файла
  • метод isValid,
    который проверяет валидность загруженного файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить