Загрузить файл в Symfony 3.4 - Операция обновления - как мне программировать editAction? - PullRequest
0 голосов
/ 28 августа 2018

У меня проблема с моим editAction (), похоже, проблема в пути: "Файл" G: \ xampp5.6 \ htdocs \ future \ future / web / uploads / images / G: \ xampp5.6 \ tmp \ phpB0E6.tmp "не существует".
Я не знаю, что я могу сделать.

    /**
 * Displays a form to edit an existing blog entity.
 *
 * @Route("/{id}/edit", name="blog_edit")
 * @Method({"GET", "POST"})
 */
public function editAction(Request $request, Blog $blog)
{

    $blog->setImage(
new File($this->getParameter('image_directory').'/'.$blog->getImage()));

    $deleteForm = $this->createDeleteForm($blog);
    $editForm = $this->createForm('AppBundle\Form\BlogType', $blog);
    $editForm->handleRequest($request);

    if ($editForm->isSubmitted() && $editForm->isValid()) {

        $this->getDoctrine()->getManager()->flush();

        return $this->redirectToRoute('blog_edit', array('id' => $blog->getId()));
    }

    return $this->render('blog/edit.html.twig', array(
        'blog' => $blog,
        'edit_form' => $editForm->createView(),
        'delete_form' => $deleteForm->createView(),
    ));
}

EDIT: Как я могу установить правильные пути? Потому что в моей базе данных путь G: \ xampp5.6 \ tmp \ phpA7BF.tmp и должен содержать только имя изображения, например fa7bcdd50522b0592c5f98ab8313041.jpeg

1 Ответ

0 голосов
/ 29 августа 2018

решение:

в config.yml мы должны использовать обратную косую черту:

parameters:
locale: en
image_directory: '%kernel.project_dir%\web\uploads\images'

BlogContoller.php

/**
 * Displays a form to edit an existing blog entity.
 *
 * @Route("/{id}/edit", name="blog_edit")
 * @Method({"GET", "POST"})
 */
public function editAction(Request $request, Blog $blog)
{



    $deleteForm = $this->createDeleteForm($blog);
    $editForm = $this->createForm('AppBundle\Form\BlogType', $blog);
    $editForm->handleRequest($request);

    if ($editForm->isSubmitted() && $editForm->isValid()) {


        new File($blog->getImage());

        $file=$blog->getImage();
        $fileName=md5(uniqid()).'.'.$file->guessExtension();


        $file->move(
        $this->getParameter('image_directory'),$fileName
        );


        $blog->setImage($fileName);


        $this->getDoctrine()->getManager()->flush();

        return $this->redirectToRoute('blog_edit', array('id' => $blog->getId()));
    }

    return $this->render('blog/edit.html.twig', array(
        'blog' => $blog,
        'edit_form' => $editForm->createView(),
        'delete_form' => $deleteForm->createView(),
    ));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...