Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @param Request $request
- * @return Response
- */
- public function uploadAction(Request $request)
- {
- $messages = [];
- $filesOnServers = [];
- //create entity
- $file = new UserFile();
- $form = $this->createForm(UserFileType::class, $file);
- $form->handleRequest($request);
- //standart validation
- if ($form->isValid()) {
- //get rules for file validation
- $fileUploadRules = $this->container->getParameter( 'my_uploader_bundle.file_upload_rules' );
- //file validation
- $fileValidation = Upload::fileValidation($file, $fileUploadRules);
- $fileIsValid = $fileValidation["fileValid"];
- $messages = array_merge($messages, $fileValidation["messages"]);
- if($fileIsValid) {
- $em = $this->getDoctrine()->getManager();
- $em->persist($file);
- $em->flush();
- $messages[] = "File was uploaded successfully";
- //sending upload task to ftp
- $serversToUpload = $this->container->getParameter( 'my_uploader_bundle.servers_list' );
- foreach($serversToUpload as $server) {
- //insert file upload info
- $fileOnServer = new FilesOnServers();
- $fileOnServer->setFilename($file->getSavedName());
- $fileOnServer->setServer(serialize($server));
- $fileOnServer->setStatus("NEW_FILE");
- $fileOnServer->setDateUpdated(new \DateTime('now'));
- $em->persist($fileOnServer);
- $em->flush();
- $fileIdOnServer = $fileOnServer->getId();
- //send to rabbitmq
- $msg = array(
- 'savedName' => $file->getSavedName(),
- 'path' => $file->getFile()->getPath(),
- 'server' => $server,
- 'fileOnServerId' => $fileIdOnServer);
- $filesOnServers[] = $fileIdOnServer;
- $this->get('old_sound_rabbit_mq.upload_file_producer')->publish(serialize($msg));
- }
- }
- else {
- $messages[] = "File didn't uploaded because of validation reasons";
- }
- }
- else {
- //some errors with form validation
- }
- return $this->render('MyUploaderBundle:Uploader:form.html.twig', array(
- 'form' => $form->createView(),
- 'messages' => $messages,
- 'filesOnServers' => $filesOnServers,
- ));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement