Advertisement
Guest User

Untitled

a guest
May 25th, 2016
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.71 KB | None | 0 0
  1. /**
  2.      * @param Request $request
  3.      * @return Response
  4.      */
  5.     public function uploadAction(Request $request)
  6.     {
  7.         $messages = [];
  8.         $filesOnServers = [];
  9.  
  10.         //create entity
  11.         $file = new UserFile();
  12.  
  13.         $form = $this->createForm(UserFileType::class, $file);
  14.         $form->handleRequest($request);
  15.  
  16.         //standart validation
  17.         if ($form->isValid()) {
  18.  
  19.             //get rules for file validation
  20.             $fileUploadRules = $this->container->getParameter( 'my_uploader_bundle.file_upload_rules' );
  21.  
  22.             //file validation
  23.             $fileValidation = Upload::fileValidation($file, $fileUploadRules);
  24.             $fileIsValid = $fileValidation["fileValid"];
  25.             $messages = array_merge($messages, $fileValidation["messages"]);
  26.  
  27.             if($fileIsValid) {
  28.                 $em = $this->getDoctrine()->getManager();
  29.                 $em->persist($file);
  30.                 $em->flush();
  31.                 $messages[] = "File was uploaded successfully";
  32.  
  33.                 //sending upload task to ftp
  34.                 $serversToUpload = $this->container->getParameter( 'my_uploader_bundle.servers_list' );
  35.  
  36.                 foreach($serversToUpload as $server) {
  37.                     //insert file upload info
  38.                     $fileOnServer = new FilesOnServers();
  39.                     $fileOnServer->setFilename($file->getSavedName());
  40.                     $fileOnServer->setServer(serialize($server));
  41.                     $fileOnServer->setStatus("NEW_FILE");
  42.                     $fileOnServer->setDateUpdated(new \DateTime('now'));
  43.                     $em->persist($fileOnServer);
  44.                     $em->flush();
  45.                    
  46.                     $fileIdOnServer = $fileOnServer->getId();
  47.  
  48.                     //send to rabbitmq
  49.                     $msg = array(
  50.                         'savedName' => $file->getSavedName(),
  51.                         'path' => $file->getFile()->getPath(),
  52.                         'server' => $server,
  53.                         'fileOnServerId' => $fileIdOnServer);
  54.  
  55.                     $filesOnServers[] = $fileIdOnServer;
  56.                    
  57.                     $this->get('old_sound_rabbit_mq.upload_file_producer')->publish(serialize($msg));
  58.                 }
  59.             }
  60.             else {
  61.                 $messages[] = "File didn't uploaded because of validation reasons";
  62.             }
  63.         }
  64.         else {
  65.             //some errors with form validation
  66.         }
  67.  
  68.         return $this->render('MyUploaderBundle:Uploader:form.html.twig', array(
  69.             'form' => $form->createView(),
  70.             'messages' => $messages,
  71.             'filesOnServers' => $filesOnServers,
  72.         ));
  73.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement