Видео актуально для Symfony 7

В прошлом видео мы остановились на том, что загружаемый файл находится пока во временной папке. Следующая задача - это переместить этот файл в какую-то папку нашего Symfony проекта. 

Для начала нужно подготовить место, куда мы будем загружать файлы. Вспоминаем, что в Symfony, все статические файлы храняться в папке public. Для загружаемых файлов, хорошим тоном является создание такой папки как uploads. Это для того, чтобы файлы не смешивались и было понятно, что эти файлы были загружены пользователями. 

Следующая задача - это попробовать получить путь до этой папки uploads. Чтобы мы могли переместить файл в эту папку, нам нужно сначала получить путь к этой папке. 

В Symfony в контроллере мы можем воспользоваться такой специальной конструкцией:

$this->getParameter('kernel.project_dir');

Через эту конструкцию мы можем получить путь к директории с нашим проектом.

Размещаем это значение в переменную $path и добавляем путь, куда мы хотим загрузить наш файл.

$path = $this->getParameter('kernel.project_dir')."/public/uploads";

Для того, чтобы получить сам файл из запроса:

$image = $request->files->get('image');

Задача - взять эту картинку и перемести в папку $path.

Так как полученная картинка является объектом, у нее есть такой метод move. С его помощью мы и можем переместить изображение в нужное место на диске.

$image->move($path);

Но, перемещаемый файл будет иметь немного странное название. В следующих видео мы посмотрим, как можно преобразовать это название и картинка откроется.