Symfony4: изображение не может быть сохранено

Я обновился с Symfony 3.4 до 4.0 и проверил работу. Функция сохранения изображения сообщает «Завершено», но изображение не сохраняется. Поскольку место сохранения было установлено на web / uploads, в Image.php я изменил путь к каталогу изображений с web на public, но он не изменился. Что еще мне нужно изменить?

ImageController.php

public function saveAction(Request $request) { $response = new Response(); $imageService = $this->get(«admin.imageService»); if ($token === $imageService->getImageToken($staffId, $uniq)) { try { $imageService->saveImage($image); // Normal termination parameters #This is required for onComplete to fire on Mac OSX $msg = $this->container->getParameter(‘uploadify_success’); } catch (Exception $e) { $msg = $e->getMessage(); $response->setStatusCode(400); } } else { $msg = ‘Access is illegal.’; $response->setStatusCode(400); } $response->send();

ImageService.php

public function saveImage(Image $image) { // Set the extension (already set when saving from an email attachment) $ext = $image->getImageExtension(); if (!$ext && $image->getFileUpload()) { $ext = $image->getFileUpload()->guessExtension(); $image->setImageExtension($ext); } // save $this->entityManager->persist($image); $this->entityManager->flush(); }

Image.php

private function getUploadRootDir() { // Absolute path to the location to save the uploaded file return __DIR__.’/../../../../../../public/’.$this->getUploadDir(); } /** * Returns the image directory name * * @return string */ private function getUploadDir() { return ‘uploads’; }

Постскриптум

index.html.twig

{% block javascripts %} {{ parent() }} <script src=»{{ asset(‘uploadifive/jquery.uploadifive.js’) }}»></script> <script src=»{{ asset(‘js/image.five.js’) }}»></script> {% endblock %} {% block stylesheets %} {{ parent() }} <link rel=»stylesheet» href=»{{ asset(‘uploadifive/uploadifive.css’) }}»> {% endblock %} {# contentBody #} {% block contentBody %} {{ render(controller(‘AppBundle:Hq/Image:manager’)) }} {% endblock %}

manager.html.twig

<div class=»tabcontent»> <div class=»operations»> {{ form_start(form, {«attr»: {«id»: «uploadForm»}}) }} {{ form_widget(form.fileUpload) }} {{ form_rest(form) }} {{ form_end(form) }} &nbsp; </div> <div id=»fileQueue»></div> </div>

Может быть, это вещь Symfony, но где код, который на самом деле загружает файл? Вы тоже меняли каталог назначения?   —  person benq_0511    schedule 26.02.2021

@AkenRoberts Я использую uploadifive, но кажется, что место сохранения зависит от настроек Symfony.   —  person benq_0511    schedule 26.02.2021

Можете ли вы проверить свой шаблон веточки / визуализированный HTML-код, который установлен enctype=»application/x-www-form-urlencoded»?   —  person benq_0511    schedule 26.02.2021

@dbrumann Нет. Не было настройки enctype. На всякий случай добавил файл веточки, пожалуйста, проверьте его.   —  person benq_0511    schedule 26.02.2021

Чтобы FileUpload работал, вы должны установить enctype в своей форме, например добавив его в {‘attr’: { ‘enctype’: ‘multipart/form-data’}} (я думаю). Вы можете увидеть это в этом бесплатном видео с SymfonyCasts: symfonycasts.com / screencast / symfony-uploads /   —  person benq_0511    schedule 26.02.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!