Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }