Метод getSize класса UploadedFile
Метод getSize класса UploadedFile возвращает
размер загруженного файла в байтах. Метод не принимает
параметров и возвращает целое число или null, если
размер файла не удалось определить. Обычно используется
для проверки ограничений на размер файла перед его
сохранением.
Синтаксис
public function getSize(): ?int
Пример
Давайте выведем размер загруженного файла в контроллере:
<?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');
$size = $file->getSize();
return new Response('File size: ' . $size . ' bytes');
}
}
?>
Результат выполнения кода для файла размером 1024 байта:
File size: 1024 bytes
Пример
Давайте проверим, не превышает ли файл допустимый размер:
<?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');
$maxSize = 2048;
if ($file->getSize() > $maxSize) {
return new Response('File is too large');
}
return new Response('File accepted');
}
}
?>
Результат выполнения кода для файла размером 4096 байт:
File is too large
Результат выполнения кода для файла размером 512 байт:
File accepted
Смотрите также
-
класс
UploadedFile,
который представляет загруженный файл -
метод
move,
который перемещает загруженный файл -
метод
getClientOriginalName,
который возвращает исходное имя файла -
метод
getMimeType,
который возвращает MIME-тип файла