Метод move класса UploadedFile
Метод move класса UploadedFile перемещает
загруженный через форму файл из временной директории
в целевую папку проекта. Первым параметром передаётся
путь к директории назначения, вторым - желаемое имя файла.
Если имя не указано, используется оригинальное имя
загруженного файла.
Синтаксис
public function move(string $directory, string $name = null): File
Пример
Давайте переместим загруженный файл в директорию 'uploads':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileUploadedFile;
use SymfonyComponentRoutingAttributeRoute;
class UploadController extends AbstractController
{
#[Route('/upload', name: 'upload_file')]
public function upload(Request $request): Response
{
/** @var UploadedFile $file */
$file = $request->files->get('file');
$file->move('uploads', 'article.txt');
return new Response('File uploaded');
}
}
?>
Результат выполнения кода:
"File uploaded"
Пример
Давайте переместим файл без указания имени - тогда будет использовано оригинальное имя загруженного файла:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileUploadedFile;
use SymfonyComponentRoutingAttributeRoute;
class UploadController extends AbstractController
{
#[Route('/upload', name: 'upload_file')]
public function upload(Request $request): Response
{
/** @var UploadedFile $file */
$file = $request->files->get('file');
$file->move('uploads');
return new Response($file->getClientOriginalName());
}
}
?>
Результат выполнения кода:
"article.txt"
Пример
Давайте сохраним перемещённый файл в переменную и выведем
его путь через метод getPathname:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileUploadedFile;
use SymfonyComponentRoutingAttributeRoute;
class UploadController extends AbstractController
{
#[Route('/upload', name: 'upload_file')]
public function upload(Request $request): Response
{
/** @var UploadedFile $file */
$file = $request->files->get('file');
$res = $file->move('uploads', 'article.txt');
return new Response($res->getPathname());
}
}
?>
Результат выполнения кода:
"uploads/article.txt"
Смотрите также
-
класс
UploadedFile,
который представляет загруженный через форму файл -
метод
getClientOriginalName,
который возвращает оригинальное имя загруженного файла -
метод
getClientMimeType,
который возвращает MIME-тип загруженного файла -
метод
isValid,
который проверяет, был ли файл успешно загружен