/**
  * Creates a new Image entity.
  *
  * @Route("/", name="images_create")
  * @Method("POST")
  * @Template("Image/new.html.twig")
  *
  * @param Request $request
  *
  * @return array|\Symfony\Component\HttpFoundation\RedirectResponse
  */
 public function createAction(Request $request)
 {
     $image = new Image();
     $image->setUser($this->getUser());
     $form = $this->createCreateForm($image);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $uploadDirectory = 'uploads';
         $file = $image->getFile();
         $fileName = sha1_file($file->getRealPath()) . '.' . $file->guessExtension();
         $fileLocator = realpath($this->getParameter('kernel.root_dir') . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'web') . DIRECTORY_SEPARATOR . $uploadDirectory;
         $file->move($fileLocator, $fileName);
         $image->setUri($request->getScheme() . '://' . $request->getHttpHost() . '/' . $uploadDirectory . '/' . $fileName);
         $em = $this->getDoctrine()->getManager();
         $em->persist($image);
         $em->flush();
         return $this->redirect($this->generateUrl('homepage'));
     }
     return ['image' => $image, 'new_form' => $form->createView()];
 }
 /**
  * Post a new image.
  *
  * { "image": { "title": "Lorem" } }
  *
  * @param Request $request
  * @param $user_id
  *
  * @return View|Response
  *
  * @FOSRest\View()
  * @FOSRest\Post(
  *     "/users/{user_id}/images/",
  *     requirements = {
  *         "user_id" : "\d+"
  *     }
  * )
  * @Nelmio\ApiDoc(
  *     input = ApiBundle\Form\ImageType::class,
  *     statusCodes = {
  *         Response::HTTP_CREATED : "Created"
  *     }
  * )
  */
 public function postImageAction(Request $request, $user_id)
 {
     $em = $this->getDoctrine()->getManager();
     $user = $em->getRepository('AppBundle:User')->find($user_id);
     if (!$user instanceof User) {
         throw new NotFoundHttpException();
     }
     $image = new Image();
     $image->setUser($user);
     $logger = $this->get('logger');
     $logger->info($request);
     return $this->processImageForm($request, $image);
 }