Видео актуально для 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);
Но, перемещаемый файл будет иметь немного странное название. В следующих видео мы посмотрим, как можно преобразовать это название и картинка откроется.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти