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

Метод getRealPath

Метод getRealPath класса UploadedFile возвращает абсолютный путь к загруженному файлу во временной директории сервера. Метод не принимает параметров и возвращает строку с путём либо false, если файл не существует. Путь указывает на временную копию файла, созданную PHP при загрузке, а не на исходное расположение на компьютере пользователя.

Метод наследуется от класса File и работает с временным файлом, который PHP помещает в директорию upload_tmp_dir. После завершения запроса временный файл удаляется автоматически.

Синтаксис

public function getRealPath(): string|false

Пример

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

<?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'); $res = $file->getRealPath(); return new Response($res); } } ?>

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

"/tmp/php12A3B4"

Пример

Давайте проверим существование временного файла через функцию file_exists:

<?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/check', name: 'upload_check')] public function check(Request $request): Response { $file = $request->files->get('document'); $res = $file->getRealPath(); if ($res !== false && file_exists($res)) { return new Response('file exists: ' . $res); } return new Response('file not found'); } } ?>

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

"file exists: /tmp/php12A3B4"

Пример

Давайте прочитаем содержимое загруженного файла по абсолютному пути:

<?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/read', name: 'upload_read')] public function read(Request $request): Response { $file = $request->files->get('document'); $path = $file->getRealPath(); $res = file_get_contents($path); return new Response($res); } } ?>

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

"hello"

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

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