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

Один из таких методов, мы сейчас разберем. При загрузке файла его нужно где-то сохранить. 

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

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

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

Давайте создадим в ней директорию uploads. Это директория для загрузок, куда мы будем загружать файлы. 

Прежде чем перемещать файл куда-то, нам нужно его получить. 

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

Так мы получим объект, в котором храниться наша картинка. 

Метод этого объекта, который нас интересует - это метод move(). Благодаря этому методу мы можем переместить наш файл в какое-то место на компьютере. 

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

kernel.project_dir - позволяет автоматически указать путь до корневой папки нашего проекта. 

И далее перемещаем сам файл на этот адрес:

$file->move($path);

После выполнения этого кода, файл должен загрузиться в проект. См. видео. Проблема будет в том, что имя этого файла будет не очень хорошее. Оно будет автоматически генерироваться и пока у нас не получиться открыть этот файл, т.к. у него нет расширения. Но, по сути, картинка уже загрузилась. Осталось только решить вопрос с именем и открыть этот файл.

Но, это этом уже в следующем видео.