private function uploadAttachment($filename, $attachmentPath) { $uploadResult = null; $upload = new Http(); $upload->setDestination($attachmentPath); try { // upload received file(s) $upload->receive($filename); } catch (\Exception $e) { return $uploadResult; } //This method will return the real file name of a transferred file. $name = $upload->getFileName($filename); //This method will return extension of the transferred file $extention = pathinfo($name, PATHINFO_EXTENSION); //get random new name $newName = $this->random->getRandomUniqueName() . '_' . date('Y.m.d_h:i:sa'); $newFullName = $attachmentPath . $newName . '.' . $extention; // rename rename($name, $newFullName); $uploadResult = $newFullName; return $uploadResult; }
/** * set validation constraints * * * @uses InputFilter * * @access public * * @param int $courseId * @param string $name * @param bool $overrideFilterFlag ,default is bool false * @param array $fileUploadOptions ,default is empty array * * @return InputFilter validation constraints */ public function getInputFilter($courseId, $name, $overrideFilterFlag = false, &$fileUploadOptions = array()) { if (!$this->inputFilter || $overrideFilterFlag === true) { $inputFilter = new InputFilter(); $inputFilter->add(array('name' => 'name', 'required' => true)); $inputFilter->add(array('name' => 'type', 'required' => true)); $inputFilter->add(array('name' => 'course', 'required' => true)); $random = new Random(); $unique = $random->getRandomUniqueName(); $DirSep = DIRECTORY_SEPARATOR; $target = APPLICATION_PATH . $DirSep . 'upload' . $DirSep . 'courseResources' . $DirSep . $courseId . $DirSep; $useUploadName = true; if (!file_exists($target)) { // PHP takes 0777 and substracts the current value of umask $oldUmask = umask(0); mkdir($target, 0777); // return back umask to it's original value umask($oldUmask); } if (is_string($name) && strlen($name) > 0) { $target .= $name . "_" . $unique; $useUploadName = false; } $fileUploadOptions = array("target" => $target, "overwrite" => true, "use_upload_name" => $useUploadName, "use_upload_extension" => true); $inputFilter->add(array('name' => 'file', 'required' => true, 'filters' => array(array("name" => "Zend\\Filter\\File\\RenameUpload", "options" => $fileUploadOptions)), 'validators' => array(array('name' => 'Fileextension', 'options' => array('extension' => 'zip,pdf,ppt,pot,pps,pptx,potx,ppsx,thmx'))))); $this->inputFilter = $inputFilter; } return $this->inputFilter; }
/** * set validation constraints * * * @uses InputFilter * * @access public * @param Utilities\Service\Query\Query $query * @return InputFilter validation constraints */ public function getInputFilter($query) { if (!$this->inputFilter) { $inputFilter = new InputFilter(); $inputFilter->add(array('name' => 'title', 'required' => true)); $inputFilter->add(array('name' => 'path', 'required' => true, 'validators' => array(array('name' => 'Uri', 'options' => array('uriHandler' => new Uri(), 'allowRelative' => true, 'allowAbsolute' => false))))); $pageTypesReflection = new \ReflectionClass('CMS\\Service\\PageTypes'); $inputFilter->add(array('name' => 'type', 'required' => true, 'validators' => array(array('name' => 'InArray', 'options' => array('haystack' => $pageTypesReflection->getConstants()))))); $pageCategoriesReflection = new \ReflectionClass('CMS\\Service\\PageCategories'); $inputFilter->add(array('name' => 'category', 'required' => true, 'validators' => array(array('name' => 'InArray', 'options' => array('haystack' => $pageCategoriesReflection->getConstants()))))); $inputFilter->add(array('name' => 'author', 'required' => true)); $DirSep = DIRECTORY_SEPARATOR; $targetPath = APPLICATION_PATH . $DirSep . 'upload' . $DirSep . 'pagePictures' . $DirSep; if (!file_exists($targetPath)) { $oldUmask = umask(0); mkdir($targetPath, 0777); umask($oldUmask); } $random = new Random(); $fileUploadOptions = array("target" => $targetPath . $random->getRandomUniqueName(), "overwrite" => true, "use_upload_name" => false, "use_upload_extension" => true); $inputFilter->add(array('name' => 'picture', 'required' => true, 'filters' => array(array("name" => "Zend\\Filter\\File\\RenameUpload", "options" => $fileUploadOptions)), 'validators' => array(array('name' => 'Zend\\Validator\\File\\IsImage')))); $inputFilter->add(array('name' => 'summary', 'required' => true)); $inputFilter->add(array('name' => 'body', 'required' => true, 'validators' => array(array('name' => 'CMS\\Service\\Validator\\NotEmptyTrimmed')))); $this->inputFilter = $inputFilter; } return $this->inputFilter; }