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

Метод getClientOriginalPath

Метод getClientOriginalPath класса UploadedFile возвращает путь к файлу на стороне клиента, который был загружен на сервер. Этот путь приходит из браузера пользователя и не всегда является полным путём к файлу в файловой системе. Метод не принимает параметров и возвращает строку или null, если путь не был передан.

Важно понимать, что значение, возвращаемое методом, нельзя использовать для доступа к файлу на сервере. Оно отражает только ту информацию, которую предоставил браузер, и может быть подделано. Для получения реального пути к загруженному файлу используйте метод getRealPath.

Синтаксис

public function getClientOriginalPath(): ?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'); } $path = $file->getClientOriginalPath(); return new Response($path ?? 'Path not provided'); } } ?>

Результат выполнения кода при загрузке файла с полным путём /home/user/documents/article.txt:

"/home/user/documents/article.txt"

Пример

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

<?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/info', name: 'upload_info')] public function info(Request $request): Response { $file = $request->files->get('document'); if ($file === null) { return new Response('No file uploaded'); } $res = [ 'clientPath' => $file->getClientOriginalPath(), 'clientName' => $file->getClientOriginalName(), 'realPath' => $file->getRealPath(), ]; return new Response(json_encode($res)); } } ?>

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

{"clientPath":"/home/user/documents/article.txt","clientName":"article.txt","realPath":"/tmp/php12ab34"}

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

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