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

Метод getClientOriginalExtension класса UploadedFile

Метод getClientOriginalExtension класса UploadedFile возвращает расширение файла, которое было передано клиентом при загрузке. Метод не принимает параметров и возвращает строку с расширением без ведущей точки. Например, если пользователь загрузил файл 'document.pdf', метод вернёт 'pdf'.

Важно понимать, что это расширение берётся из имени файла, отправленного браузером, а не определяется по содержимому файла. Поэтому использовать его для проверки безопасности следует с осторожностью.

Синтаксис

$uploadedFile->getClientOriginalExtension(): string

Пример

Давайте создадим контроллер, который принимает загруженный файл и выводит его оригинальное расширение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload', name: 'upload_file')] public function upload(Request $request): Response { $file = $request->files->get('document'); if ($file === null) { return new Response('No file uploaded'); } $extension = $file->getClientOriginalExtension(); return new Response($extension); } } ?>

Результат выполнения кода для файла 'document.pdf':

"pdf"

Пример

Давайте проверим расширение файла перед сохранением и разрешим только изображения:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload/image', name: 'upload_image')] public function uploadImage(Request $request): Response { $file = $request->files->get('image'); if ($file === null) { return new Response('No file uploaded'); } $extension = $file->getClientOriginalExtension(); $allowed = ['jpg', 'jpeg', 'png', 'gif']; if (!in_array($extension, $allowed)) { return new Response('Invalid file type'); } $file->move('uploads', 'image.' . $extension); return new Response('Uploaded: ' . $extension); } } ?>

Результат выполнения кода для файла 'photo.png':

"Uploaded: png"

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

  • метод getClientOriginalName,
    который возвращает оригинальное имя файла
  • метод getClientMimeType,
    который возвращает MIME-тип файла от клиента
  • метод guessExtension,
    который определяет расширение по содержимому файла
  • метод move,
    который перемещает загруженный файл в нужную директорию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить