В предыдущем видео, мы убедились в том, что загружаемый файл у нас является объектом. Если это так, то у него есть какие-то свойства и методы.
Один из таких методов, мы сейчас разберем. При загрузке файла его нужно где-то сохранить.
Давайте сделаем так, чтобы загружаемый файл перемещался в какую-то конкретную папку в Symfony проекте, где он и будет храниться.
Но для начала нужно разобраться, где мы будем хранить этот файл. Его можно хранить на локальном компьютере или в облаке. На хранении в облаке мы пока не останавливаемся.
Давайте пока разберем сохранение на локальном компьютере. Вся статика в Symfony храниться в папке public. Эта та папка, которая доступна для посетителей сайта. В ней мы и будем хранить загружаемые файлы.
Давайте создадим в ней директорию uploads. Это директория для загрузок, куда мы будем загружать файлы.
Прежде чем перемещать файл куда-то, нам нужно его получить.
$file = $request->files->get('image');
Так мы получим объект, в котором храниться наша картинка.
Метод этого объекта, который нас интересует - это метод move(). Благодаря этому методу мы можем переместить наш файл в какое-то место на компьютере.
$path = $this->getParameter('kernel.project_dir').'/public/uploads';
kernel.project_dir - позволяет автоматически указать путь до корневой папки нашего проекта.
И далее перемещаем сам файл на этот адрес:
$file->move($path);
После выполнения этого кода, файл должен загрузиться в проект. См. видео. Проблема будет в том, что имя этого файла будет не очень хорошее. Оно будет автоматически генерироваться и пока у нас не получиться открыть этот файл, т.к. у него нет расширения. Но, по сути, картинка уже загрузилась. Осталось только решить вопрос с именем и открыть этот файл.
Но, это этом уже в следующем видео.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти
Или зарегистрируйтесь через социальные сети: