/** * @Route("/file-upload", name="uploadFile") * @Template() */ public function uploadFileAction(Request $request) { $allow = $request->get('private', false); /** @var File $file */ $file = $request->files->get('file'); $imageName = uniqid('legofy-online') . '.png'; $command = sprintf('legofy %s/%s %s/../../../web/images/%s', $file->getPath(), $file->getFilename(), __DIR__, $imageName); $process = new Process($command); $process->run(); if (!$process->isSuccessful()) { throw new ProcessFailedException($process); } $imagine = new Imagine(); $imageFile = $imagine->open(sprintf('%s/../../../web/images/%s', __DIR__, $imageName)); $box = $imageFile->getSize(); if ($box->getHeight() > $box->getWidth()) { $imageFile->resize(new Box(400, $box->getHeight() * (400 / $box->getWidth())))->crop(new Point(0, 0), new Box(400, 400)); } else { $newWidth = $box->getWidth() * (400 / $box->getHeight()); $imageFile->resize(new Box($newWidth, 400))->crop(new Point(($newWidth - 400) / 2, 0), new Box(400, 400)); } $imageFile->save(sprintf('%s/../../../web/images/thumbnails/%s', __DIR__, $imageName)); $image = new Image(); $image->setPrivate($allow)->setName($imageName)->setCreationDate(new \DateTime()); $em = $this->getDoctrine()->getManager(); $em->persist($image); $em->flush(); return new JsonResponse(['url' => $this->generateUrl('editImage', ['id' => $image->getId(), 'name' => $image->getName()])]); }
/** * @Route("/file-upload", name="uploadFile") * @Template() */ public function uploadFileAction(Request $request) { $allow = $request->get('allow', false); /** @var File $file */ $file = $request->files->get('file'); $imageName = uniqid('legofy-online') . '.png'; $command = sprintf('legofy %s/%s %s/../../../web/images/%s', $file->getPath(), $file->getFilename(), __DIR__, $imageName); $process = new Process($command); $process->run(); if (!$process->isSuccessful()) { throw new ProcessFailedException($process); } $image = new Image(); $image->setPrivate($allow ? false : true)->setName($imageName)->setCreationDate(new \DateTime()); $em = $this->getDoctrine()->getManager(); $em->persist($image); $em->flush(); return ['image' => $image]; }