Метод getClientOriginalName
Метод getClientOriginalName принадлежит классу
UploadedFile и возвращает оригинальное имя
файла, которое файл имел на компьютере пользователя
до загрузки на сервер. Метод не принимает параметров
и возвращает строку. Это имя не следует использовать
для сохранения файла на сервере без предварительной
проверки, так как пользователь может передать
опасное значение.
Синтаксис
public function getClientOriginalName(): 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) {
$name = $file->getClientOriginalName();
return new Response($name);
}
return new Response('no file');
}
}
?>
Результат выполнения кода при загрузке файла с именем 'article.txt':
"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/save', name: 'upload_save')]
public function save(Request $request): Response
{
$file = $request->files->get('document');
if ($file) {
$originalName = $file->getClientOriginalName();
$safeName = 'user_' . time() . '_' . $originalName;
$file->move(
$this->getParameter('kernel.project_dir') . '/uploads',
$safeName
);
return new Response('saved as ' . $safeName);
}
return new Response('no file');
}
}
?>
Результат выполнения кода при загрузке файла с именем 'abcde.pdf':
"saved as user_1712345678_abcde.pdf"
Смотрите также
-
класс
UploadedFile,
который представляет загруженный файл -
метод
getClientOriginalExtension,
который возвращает оригинальное расширение файла -
метод
getClientMimeType,
который возвращает MIME-тип файла от клиента -
метод
move,
который перемещает загруженный файл в нужную директорию