/** * Advanced avatar uploader Blueimp UI */ public function uploadAction() { $user = $this->identity()->getUser(); $fileService = $this->getServiceLocator()->get('Media\\Service\\File'); $blueimpService = $this->getServiceLocator()->get('Media\\Service\\Blueimp'); $actionName = $this->getRequest()->getUri()->getPath(); if ($this->getRequest()->isPost()) { $form = new ImageUpload(); $inputFilter = new ImageUploadInputFilter(); $form->setInputFilter($inputFilter->getInputFilter()); $request = $this->getRequest(); $post = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray()); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getConnection()->beginTransaction(); $form->setData($post); if ($form->isValid()) { $image = $fileService->createFile($form, $user); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getConnection()->commit(); $images = $blueimpService->displayUploadedFile($image, $actionName); } else { $messages = $form->getMessages(); $messages = array_shift($messages); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getConnection()->rollBack(); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->close(); $images = ['files' => [['name' => $form->get('image')->getValue()['name'], 'error' => array_shift($messages)]]]; } } elseif ($this->getRequest()->isDelete()) { $fileService->deleteFile($this->getRequest()->getQuery("fileId")); return $blueimpService->deleteFileJson($this->getRequest()->getQuery("fileId")); } else { $images = $blueimpService->displayUploadedFiles($user->getImages(), $actionName); } return new JsonModel($images); }
/** * Advanced avatar uploader Blueimp UI */ public function startImageUploadAction() { $repository = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getRepository('Categories\\Entity\\Categories'); /** @var \Categories\Service\Categories $categoriesService */ $categoriesService = $this->getServiceLocator()->get('Categories\\Service\\Categories'); $id = $this->params()->fromRoute('id'); if ($id) { $category = $repository->find($id); } $imageService = $this->getServiceLocator()->get('Media\\Service\\File'); $blueimpService = $this->getServiceLocator()->get('Media\\Service\\Blueimp'); if ($this->getRequest()->isPost()) { $form = new ImageUpload('upload-image'); $inputFilter = new ImageUploadInputFilter(); $form->setInputFilter($inputFilter->getInputFilter()); $request = $this->getRequest(); $post = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray()); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getConnection()->beginTransaction(); $form->setData($post); if ($form->isValid()) { if (!$id) { $image = $imageService->writeFile($form); $categoriesService->addImageToSession($image); } else { $image = $imageService->createFile($form, $category); } $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getConnection()->commit(); $dataForJson = $blueimpService->displayUploadedFile($image, '/categories/management/delete-image/'); } else { $messages = $form->getMessages(); $messages = array_shift($messages); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getConnection()->rollBack(); $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->close(); $dataForJson = ['files' => [['name' => $form->get('image')->getValue()['name'], 'error' => array_shift($messages)]]]; } } else { $images = []; if ($id) { $images = $category->getImages(); } else { if ($categoriesService->ifImagesExist()) { foreach ($categoriesService->getSession()->ids as $imageId) { array_push($images, $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager')->getRepository('Media\\Entity\\File')->find($imageId)); } } } $dataForJson = $blueimpService->displayUploadedFiles($images, '/categories/management/delete-image/'); } return new JsonModel($dataForJson); }