public function uploadAction(Request $request) { $form = $this->createForm(new Import\Upload()); $form->handleRequest($request); $typeArray = array('invoice', 'gtd', 'article'); $error = null; if ($request->isMethod('POST')) { if ($form->isValid()) { $type = $form->get('type')->getData(); if (in_array($type, $typeArray)) { $file = $form->get('file')->getData(); $uploadService = $this->get('app_core.upload'); $uploadService->init($file, 'HP'); $filename = $uploadService->process(); try { $import = Factory\ImportFactory::create($type, $filename, $this->container); $import->parse(); } catch (\Exception $ex) { $error = $ex->getMessage(); } } else { $error = "Wrong type import is selected"; } } } return $this->render('HpBundle:Import:upload.html.twig', ['error' => $error, 'form' => $form->createView()]); }
protected function parseDirectory($dir) { $di = new \DirectoryIterator($dir); foreach ($di as $filename) { if ($filename != '.' && $filename != '..') { $file = $dir . '/' . $filename; $error = false; foreach ($this->_validators as $validator) { if (!$validator->validate($file)) { $errorMessage = $validator->getMessage(); $error = true; } } if (true === $error) { echo $errorMessage; continue; } try { $parser = Factory\ImportFactory::create($this->getType($filename), $file, $this->getContainer()); $parser->parse(); unlink($file); } catch (\Exception $ex) { $this->_logger->error($ex->getMessage() . ' IN ' . $ex->getFile() . ' LINE ' . $ex->getLine()); } } } }