Beispiel #1
0
 public function ajaxUploadCvAction()
 {
     $applicantDao = $this->getServiceLocator()->get('dao_recruitment_applicant_applicant');
     $applicantService = $this->getServiceLocator()->get('service_recruitment_applicant');
     $request = $this->getRequest();
     $result = ['status' => 'error', 'msg' => TextConstants::SERVER_ERROR];
     try {
         if ($request->isPost() && $request->isXmlHttpRequest()) {
             $data = $request->getPost();
             $fileInfo = $request->getFiles()->toArray();
             $filename = $fileInfo['cv']['name'];
             $applicantInfo = $applicantDao->fetchOne(['id' => $data['id']]);
             $filesObj = new Files($fileInfo);
             $fileType = $filesObj->getFileType($filename);
             $acceptedFileTypes = ['pdf', 'doc', 'docx', 'odt', 'rtf'];
             $cvName = null;
             if (!in_array($fileType, $acceptedFileTypes)) {
                 $result = ['status' => 'error', 'msg' => TextConstants::FILE_TYPE_NOT_TRUE];
             } else {
                 $savedFile = $filesObj->saveFiles(DirectoryStructure::FS_GINOSI_ROOT . DirectoryStructure::FS_UPLOADS_ROOT . DirectoryStructure::FS_UPLOADS_HR_APPLICANT_DOCUMENTS . date('Y/m/', strtotime($applicantInfo->getDateApplied())), $acceptedFileTypes, false, true);
                 if ($savedFile['cv']) {
                     $cvName = $savedFile['cv'];
                 }
                 if (!is_null($cvName)) {
                     $preApplicantInfo = $applicantService->getApplicantById($data['id']);
                     if ($preApplicantInfo->getCvFileName()) {
                         $filePath = DirectoryStructure::FS_GINOSI_ROOT . DirectoryStructure::FS_UPLOADS_ROOT . DirectoryStructure::FS_UPLOADS_HR_APPLICANT_DOCUMENTS . $preApplicantInfo->getCvFileUrl();
                         if (is_readable($filePath)) {
                             @unlink($filePath);
                         }
                     }
                     $applicantDao->save(['cv' => $cvName], ['id' => $data['id']]);
                     $result = ['status' => 'success', 'msg' => TextConstants::SUCCESS_UPDATE];
                     Helper::setFlashMessage(['success' => TextConstants::SUCCESS_UPDATE]);
                 }
             }
         }
     } catch (\Exception $e) {
         // do nothing
     }
     return new JsonModel($result);
 }