예제 #1
0
 /**
  * Upload Function
  *
  * Esta função faz upload do arquivo, renomeia e seta os atriutos
  * filename, filehash, filesize
  *
  * @return boolean
  */
 public function upload()
 {
     /* Verifica se ha arquivo para upload */
     $upload = new Zend_File_Transfer_Adapter_Http();
     if ($upload->isValid($this->field)) {
         $this->filename = $upload->getFileName($this->field, false);
         $this->filehash = md5(time() . microtime(true)) . "." . $this->getExtension($this->filename);
         $this->filesize = $upload->getFileSize();
         $upload->setDestination($this->path)->setFilters(array("Rename" => $this->filehash));
         return $upload->receive($this->field);
     } else {
         return false;
     }
 }
예제 #2
0
$view = new Zend_View();
$view->setScriptPath(__DIR__);
// Tell all the elements in the form which view to use when rendering
foreach ($form as $item) {
    $item->setView($view);
}
// process or display the form
if (isset($_POST['submit']) && $form->isValid($_POST)) {
    $uploadHandler = new Zend_File_Transfer_Adapter_Http();
    $uploadHandler->setDestination(__DIR__ . '/uploads/');
    try {
        $uploadHandler->receive();
        $data = $form->getValues();
        Zend_Debug::dump($data, 'Form Data:');
        $fullPath = $uploadHandler->getFileName('file');
        $size = $uploadHandler->getFileSize('file');
        $mimeType = $uploadHandler->getMimeType('file');
        $fileInfo = pathinfo($fullPath);
        $name = $fileInfo['basename'] . '<br>';
        // rename the file for security purpose
        $newName = 'RM_' . time() . '_' . $fileInfo['basename'];
        $fullFilePath = __DIR__ . '/uploads/' . $newName;
        $filterFileRename = new Zend_Filter_File_Rename(array('target' => $fullFilePath, 'overwrite' => true));
        $filterFileRename->filter($fullPath);
        echo 'thanks <br />';
    } catch (Zend_File_Transfer_Exception $e) {
        echo $e->getMessage();
    }
} else {
    echo $form->render($view);
}
 /** !!
  ************************************************************************
  * The following methods take the request data, validate it, parse it,
  * and store it if there were no previous errors.
  ************************************************************************
  */
 public function basicProfileSave($request_data)
 {
     global $error_msg;
     $thumb = null;
     $file_name = null;
     $file_mime_type = null;
     $file_size = null;
     $apiDataArray = array('person' => null);
     $this->isError = TRUE;
     if (empty($request_data['first_name'])) {
         $this->message = __('Fields marked with * can not be empty, First name can not be empty.');
     } else {
         if (!empty($request_data['pass']) || !empty($request_data['conpass'])) {
             $set_new_password = true;
             $new_password_ok = false;
             if ($request_data['pass'] != $request_data['conpass']) {
                 $this->message = __('Password and confirm password should match.');
             } else {
                 if (strlen($request_data['pass']) < PA::$password_min_length) {
                     $this->message = sprintf(__('Password should be of %s characters or more.'), PA::$password_min_length);
                 } else {
                     if (strlen($request_data['pass']) > PA::$password_max_length) {
                         $this->message = sprintf(__('Password should be less than %s charcaters.'), PA::$password_max_length);
                     } else {
                         // all is good
                         $new_password_ok = true;
                     }
                 }
             }
         }
     }
     if (isset($request_data['postal_code']) && isset($request_data['postal_code']['value']) && !empty($request_data['postal_code']['value'])) {
         $zipCode = trim($request_data['postal_code']['value']);
         $validator = new Zend_Validate_PostCode("en_US");
         if (!$validator->isValid($zipCode)) {
             $this->message = "The zip code is invalid.";
         } else {
             $request_data['postal_code']['value'] = $zipCode;
             $apiDataArray['person']['zip_code'] = $zipCode;
         }
     }
     if (isset($request_data['about']) && isset($request_data['about']['value']) && !empty($request_data['about']['value'])) {
         $about = trim($request_data['about']['value']);
         $validator = new Zend_Validate_StringLength(array('max' => 500));
         if (!$validator->isValid($about)) {
             $this->message = "The about field is limited to 500 characters. There are " . strlen($about) . " characters in the about field";
         }
     }
     if ($request_data['deletepicture'] == "true") {
         $this->handleDeleteUserPic($request_data);
     }
     /* Parag Jagdale - 10/27/2010: Upload files with Zend library, Resize files and upload to AmazonS3 */
     if (empty($this->message) && !empty($_FILES['userfile']['name'])) {
         $file = null;
         // Recieve uploaded file
         $zendUploadAdapter = new Zend_File_Transfer_Adapter_Http();
         $zendUploadAdapter->setDestination(PA::$upload_path);
         $zendUploadAdapter->addValidator('Size', false, '1MB')->addValidator('Count', false, 1)->addValidator('FilesSize', false, array('min' => '1kB', 'max' => '2MB'))->addValidator('Extension', false, array('jpeg', 'jpg', 'png', 'gif'))->addValidator('ImageSize', false, array('minwidth' => 40, 'maxwidth' => 1024, 'minheight' => 40, 'maxheight' => 768));
         if (!$zendUploadAdapter->isValid()) {
             // Invalid image, so show errors
             $this->message = __("The image you selected as your photo has some errors: <br />" . implode("<br />", $zendUploadAdapter->getMessages()));
         }
         try {
             $zendUploadAdapter->receive();
         } catch (Zend_File_Transfer_Exception $e) {
             $this->message = $e->getMessage();
         }
         if (empty($this->message)) {
             //If there is no error message then try saving to amazon s3
             // save images to amazon s3
             global $app;
             $aws_key = null;
             $aws_secret_key = null;
             $aws_key = $app->configData['configuration']['api_keys']['value']['amazon_aws_key']['value'];
             $aws_secret_key = $app->configData['configuration']['api_keys']['value']['amazon_aws_secret']['value'];
             $amazon_bucket_name = $app->configData['configuration']['api_keys']['value']['amazon_s3_bucket']['value'];
             if (isset($aws_key) && isset($aws_secret_key)) {
                 $s3 = null;
                 $bucketAvailable = false;
                 $bucketCreated = false;
                 $s3 = new Zend_Service_Amazon_S3($aws_key, $aws_secret_key);
                 if (isset($s3)) {
                     $bucketCreated = false;
                     $bucketAvailable = $s3->isBucketAvailable($amazon_bucket_name);
                     if (!$bucketAvailable) {
                         if ($s3->createBucket($amazon_bucket_name)) {
                             // new bucket was created
                             $bucketCreated = true;
                         }
                     } else {
                         $bucketCreated = true;
                     }
                     if ($bucketCreated == true) {
                         // delete old amazon s3 pictures
                         $this->handleDeleteUserPic($request_data);
                         $file_path = $zendUploadAdapter->getFileName('userfile', true);
                         $file_name = $zendUploadAdapter->getFileName('userfile', false);
                         $file_size = $zendUploadAdapter->getFileSize('userfile');
                         $file_name = $this->cleanupFileName($file_name);
                         $file_info = getimagesize($file_path);
                         $file_mime_type = isset($file_info) && isset($file_info['mime']) && !empty($file_info['mime']) ? $file_info['mime'] : null;
                         $apiDataArray['person'] = array('avatar' => array('file_name' => $file_name, 'content_type' => $file_mime_type, 'file_size' => $file_size));
                         // api_call needs to be set to true in order for the User class to update the avatar and avatar_small fields
                         $this->user_info->api_call = true;
                         foreach ($this->_image_sizes as $imageSizeType => $imageDimensions) {
                             // Resize image into thumbnails
                             $imageAsString = null;
                             try {
                                 $thumb = PhpThumbFactory::create($file_path);
                                 if (!isset($this->user_info->core_id) && !empty($this->user_info->core_id)) {
                                     $this->user_info->core_id = 0;
                                 }
                                 $objectPath = $this->buildAmazonS3ObjectURL($imageSizeType, $this->user_info->core_id, $file_name);
                                 if (isset($imageDimensions) && !empty($imageDimensions)) {
                                     // if this is an original size image, the width and height dont need to be set
                                     $thumb->adaptiveResize($imageDimensions['width'], $imageDimensions['height']);
                                 }
                                 $imageAsString = $thumb->getImageAsString();
                                 $amazonURL = "http://s3.amazonaws.com/" . $amazon_bucket_name;
                                 switch ($imageSizeType) {
                                     case "large":
                                         $this->user_info->picture = $objectPath;
                                         $this->user_info->picture_dimensions = $imageDimensions;
                                         break;
                                     case "standard":
                                         $this->user_info->avatar = $objectPath;
                                         $this->user_info->avatar_dimensions = $imageDimensions;
                                         break;
                                     case "medium":
                                         $this->user_info->avatar_small = $objectPath;
                                         $this->user_info->avatar_small_dimensions = $imageDimensions;
                                         break;
                                     default:
                                         break;
                                 }
                             } catch (Exception $e) {
                                 $this->message = $e->getMessage();
                                 break;
                             }
                             if (isset($imageAsString) && !empty($imageAsString)) {
                                 // send object to AmazonS3
                                 $s3->putObject($amazon_bucket_name . $objectPath, $imageAsString, array(Zend_Service_Amazon_S3::S3_ACL_HEADER => Zend_Service_Amazon_S3::S3_ACL_PUBLIC_READ));
                             }
                         }
                     }
                 }
             }
         }
     }
     if (empty($this->message)) {
         // Add first name and last name if they have been changed to the api update data array
         if ($this->user_info->first_name != $request_data['first_name'] || $this->user_info->last_name != $request_data['last_name']) {
             $apiDataArray['person']['name'] = $request_data['first_name'] . ' ' . $request_data['last_name'];
         }
         //If there is no error message then try saving the user information.
         $this->user_info->first_name = $request_data['first_name'];
         $this->user_info->last_name = $request_data['last_name'];
         try {
             if (!empty($request_data['pass'])) {
                 $passwordSaltArray = $this->EncryptPassword($request_data['pass']);
                 if (isset($passwordSaltArray)) {
                     list($encryptedPassword, $salt) = $passwordSaltArray;
                     $this->user_info->password = $encryptedPassword;
                     $apiDataArray['person']['encrypted_password'] = $encryptedPassword;
                     // remove last $ from salt because ruby doesn't like it
                     $salt = rtrim($salt, '$');
                     $apiDataArray['person']['password_salt'] = $salt;
                 } else {
                     $this->message = "Your password could not be changed, please contact the administrator.";
                 }
             }
         } catch (Exception $e) {
             $this->message = $e->getMessage();
         }
     }
     if (empty($this->message)) {
         try {
             $this->user_info->save();
             $dynProf = new DynamicProfile($this->user_info);
             $dynProf->processPOST('basic');
             $dynProf->save('basic', GENERAL);
             $this->message = __('Profile updated successfully.');
             //        $this->redirect2 = PA_ROUTE_EDIT_PROFILE;
             //        $this->queryString = '?type='.$this->profile_type;
             //TODO: change URL after the contributions activity stream URLs have been changed
             $url = CC_APPLICATION_URL . CC_APPLICATION_URL_TO_API . $this->user_info->user_id;
             // Try to send updated data to Core (Ruby)
             $this->sendUserDataToCivicCommons($url, $apiDataArray);
             $this->isError = FALSE;
         } catch (PAException $e) {
             $this->message = $e->message;
         }
     }
     $error_msg = $this->message;
 }
예제 #4
0
 /** Add a new image
  */
 public function addAction()
 {
     $form = new ImageForm();
     $form->submit->setLabel('Submit a new image.');
     $user = $this->getUserDetails();
     $username = $user['username'];
     if (is_dir(self::PATH . $username)) {
         $form->image->setDestination(self::PATH . $username);
     } else {
         $path = mkdir(self::PATH . $username);
         $form->image->setDestination($path);
     }
     $this->view->form = $form;
     $savePath = self::PATH . $username . '/medium/';
     $thumbPath = self::PATH . 'thumbnails/';
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         $upload = new Zend_File_Transfer_Adapter_Http();
         if ($form->isValid($formData)) {
             $upload = new Zend_File_Transfer_Adapter_Http();
             $upload->addValidator('NotExists', false, array(self::PATH . $username));
             $filesize = $upload->getFileSize();
             if ($upload->isValid()) {
                 $filename = $form->getValue('image');
                 $label = $formData['label'];
                 $secuid = $this->secuid();
                 $insertData = array();
                 $insertData['filename'] = $filename;
                 $insertData['label'] = $label;
                 $insertData['county'] = $form->getValue('county');
                 $insertData['period'] = $form->getValue('period');
                 $insertData['filedate'] = $this->getTimeForForms();
                 $insertData['created'] = $this->getTimeForForms();
                 $insertData['createdBy'] = $this->getIdentityForForms();
                 $insertData['filesize'] = $filesize;
                 $insertData['imagerights'] = $form->getValue('copyrighttext');
                 $insertData['secuid'] = $secuid;
                 //$insertData['mimetype'] = $mimetype;
                 foreach ($insertData as $key => $value) {
                     if (is_null($value) || $value == "") {
                         unset($insertData[$key]);
                     }
                 }
                 $upload->receive();
                 $location = self::PATH . $username . '/' . $filename;
                 $id = $this->_images->insert($insertData);
                 //Update the solr instance
                 $this->_helper->solrUpdater->update('beoimages', $id);
                 $largepath = self::PATH . $username . '/';
                 $mediumpath = self::PATH . $username . '/medium/';
                 $smallpath = self::PATH . $username . '/small/';
                 $displaypath = self::PATH . $username . '/display/';
                 $thumbpath = self::PATH . 'thumbnails/';
                 $name = substr($filename, 0, strrpos($filename, '.'));
                 $ext = '.jpg';
                 //create medium size
                 $phMagick = new phMagick($location, $mediumpath . $name . $ext);
                 $phMagick->resize(500, 0);
                 $phMagick->convert();
                 //Very small size
                 $phMagick = new phMagick($location, $smallpath . $name . $ext);
                 $phMagick->resize(40, 0);
                 $phMagick->convert();
                 //Record display size
                 $phMagick = new phMagick($location, $displaypath . $name . $ext);
                 $phMagick->resize(0, 150);
                 $phMagick->convert();
                 //Thumbnail size
                 $phMagick = new phMagick($location, $thumbpath . $id . $ext);
                 $phMagick->resize(100, 100);
                 $phMagick->convert();
                 $linkData = array();
                 $linkData['find_id'] = $this->_getParam('findID');
                 $linkData['image_id'] = $secuid;
                 $linkData['secuid'] = $this->secuid();
                 $imagelink = new FindsImages();
                 $insertedlink = $imagelink->insert($linkData);
                 $this->_cache->remove('findtoimage' . $this->_getParam('id'));
                 $this->_flashMessenger->addMessage('The image has been resized and added!');
                 $this->_redirect('/database/artefacts/record/id/' . $this->_getParam('id'));
             } else {
                 $this->_flashMessenger->addMessage('There is a problem with your upload. Probably that image exists.');
                 $this->view->errors = $upload->getMessages();
             }
         } else {
             $form->populate($form->getValues());
             $this->_flashMessenger->addMessage('Check your form for errors dude');
         }
     }
 }
 public function cargararchivoAction()
 {
     $idcurso = $this->_request->idcurso;
     $iddocpadre = $this->_request->iddocpadre;
     $titulo = $this->getRequest()->getParam('txtnombre');
     $documento = new Application_Model_Documentos();
     $ruta = $documento->obternerruta($iddocpadre);
     $upload = new Zend_File_Transfer_Adapter_Http();
     //        $upload = new Zend_File_Transfer();
     $upload->addValidator('FilesSize', false, array('min' => '10kB', 'max' => '4MB'));
     //$upload->addValidator('Extension', false, 'jpg,png,pdf');
     $upload->setDestination("main/documentos/" . $idcurso . $ruta);
     try {
         // upload received file(s)
         $name = $upload->getFileName('filee');
         $tamano = $upload->getFileSize('filee');
         $accion = $documento->buscarNombreArchivobyIdDocuPadre($iddocpadre, $titulo);
         if ($accion == 0) {
             $documento->registrarArchivo($idcurso, NULL, $name, NULL, $titulo, $iddocpadre, $tamano);
             $upload->receive();
         } else {
             return $this->_redirect("http://www.google.com");
         }
         //             $extension = pathinfo($name, PATHINFO_EXTENSION);
         //
         //             $renameFile = $idusuario.'.'.$extension;
         //             $fullFilePath = 'main/'.$renameFile;
         //             $fullFilePath = 'main/'.$name;
         // Rename uploaded file using Zend Framework
         //             $filterFileRename = new Zend_Filter_File_Rename(array('target' => $fullFilePath, 'overwrite' => true));
         //             $filterFileRename -> filter($name);
         //             $usuario->actualizarFoto($idusuario, $fullFilePath);
     } catch (Zend_File_Transfer_Exception $e) {
         return $this->_redirect("http://www.google.com");
     }
     return $this->_redirect('docente/documentos?idcurso=' . $idcurso . '&iddocpadre=' . $iddocpadre);
 }
예제 #6
0
 public function uploadAction()
 {
     $this->_helper->getHelper('viewRenderer')->setNoRender();
     $this->_helper->getHelper('layout')->disableLayout();
     $request = $this->getRequest();
     if (!$request->isPost()) {
         return;
     }
     $user = Zend_Auth::getInstance()->getIdentity();
     $userName = $user->username;
     $type = $request->getParam('type');
     $newguid = $request->getParam('guid');
     $cdn = Pandamp_Application::getOption('cdn');
     if ($type == 'file') {
         $dir = $cdn['static']['dir']['files'];
         $adapter = new Zend_File_Transfer_Adapter_Http();
         $files = $adapter->getFileInfo();
         foreach ($files as $file => $info) {
             $guid = (new Pandamp_Core_Guid())->generateGuid();
             $path = implode(DS, array($newguid));
             Pandamp_Utility_File::createDirs($dir, $path);
             $adapter->setDestination($dir . DS . $path);
             $name = $adapter->getFileName($file, false);
             $fileku = $dir . DS . $path . DS . strtoupper(str_replace(' ', '_', $name));
             $adapter->addFilter('rename', ['overwrite' => true, 'target' => $fileku]);
             // file uploaded & is valid
             if (!$adapter->isUploaded($file)) {
                 continue;
             }
             if (!$adapter->isValid($file)) {
                 continue;
             }
             // receive the files into the user directory
             $adapter->receive($file);
             /*
             $baseUrl = $cdn['static']['url']['files'];
             if (isset($_SERVER['SCRIPT_NAME']) && ($pos = strripos($baseUrl, basename($_SERVER['SCRIPT_NAME']))) !== false) {
             	$baseUrl = substr($baseUrl, 0, $pos);
             }
             $prefixUrl 		 = rtrim($baseUrl, '/') . '/' . $userName . '/' . date('Y') . '/' . date('m');
             $ret['original'] = array(
             	'title' => strtoupper(str_replace(' ','_',$name)),
             	'url'  => $prefixUrl . '/' . strtoupper(str_replace(' ','_',$name)),
             	'size' => $adapter->getFileSize($file),
             	'filetype' => $adapter->getMimeType($file),
             	'type' => $type	
             );
             */
             $ret['original'] = array('id' => $guid, 'title' => strtoupper(str_replace(' ', '_', $name)), 'size' => $adapter->getFileSize($file), 'filetype' => $adapter->getMimeType($file), 'type' => $type);
         }
     } else {
         /*$size = [
         			'square' => 'crop_99_103',
         			'thumbnail' => 'resize_100_53',
         			'multimedia' => 'resize_245_169',
         			'small' => 'resize_213_142', //klinik
         			'headsmall' => 'resize_213_160', //header berita
         			'crop' => 'crop_324_169', //ijt
         			'cropnext' => 'crop_325_183', //nextevent
         			'mainhead' => 'resize_462_309', //utama
         			'medium' => 'resize_646_431'
         		];*/
         $tool = 'gd';
         $size = new Zend_Config_Ini(APPLICATION_PATH . '/configs/image.ini', 'size');
         $sizes = array();
         foreach ($size->toArray() as $key => $value) {
             list($method, $width, $height) = explode('_', $value);
             $sizes[$key] = array('method' => $method, 'width' => $width, 'height' => $height);
         }
         /**
          * Prepare folders
          */
         //$dir  = $cdn['static']['dir']['images'] . DS . 'upload';
         $dir = $cdn['static']['dir']['images'];
         //$path = implode(DS, array($userName, date('Y'), date('m'), date('d')));
         $path = implode(DS, array($newguid));
         Pandamp_Utility_File::createDirs($dir, $path);
         /**
          * Upload file
          */
         $adapter = new Zend_File_Transfer_Adapter_Http();
         $adapter->setDestination($dir . DS . $path);
         $adapter->addValidator('Extension', false, 'jpg,png,gif');
         $adapter->addValidator('Size', false, 5242880);
         $files = $adapter->getFileInfo();
         foreach ($files as $file => $info) {
             $name = $adapter->getFileName($file);
             $ext = explode('.', $name);
             $extension = $ext[count($ext) - 1];
             $extension = strtolower($extension);
             //$fileName  = uniqid();
             $fileName = (new Pandamp_Core_Guid())->generateGuid();
             $fileku = $dir . DS . $path . DS . $fileName . '.' . $extension;
             $adapter->addFilter('rename', $fileku);
             // file uploaded & is valid
             if (!$adapter->isUploaded($file)) {
                 continue;
             }
             if (!$adapter->isValid($file)) {
                 continue;
             }
             // receive the files into the user directory
             $adapter->receive($file);
             // this has to be on top
             /**
              * Generate thumbnails
              */
             $thumbnailSizes = array_keys($sizes);
             $service = null;
             $service = new Pandamp_Image_GD();
             /**
              * Remove script filename from base URL
              */
             $baseUrl = $cdn['static']['url']['images'];
             /*
             if (isset($_SERVER['SCRIPT_NAME']) && ($pos = strripos($baseUrl, basename($_SERVER['SCRIPT_NAME']))) !== false) {
             	$baseUrl = substr($baseUrl, 0, $pos);
             }
             $prefixUrl 		 = rtrim($baseUrl, '/') . '/upload/' . $userName . '/' . date('Y') . '/' . date('m') . '/' . date('d');
             */
             $prefixUrl = $baseUrl . '/' . $newguid;
             $ret['original'] = array('id' => $fileName, 'title' => $fileName . '.' . $extension, 'url' => $prefixUrl . '/' . $fileName . '.' . $extension, 'size' => null, 'filetype' => $adapter->getMimeType($file), 'type' => $type);
             if ($thumbnailSizes) {
                 $service->setFile($fileku);
                 $ret['original']['size'] = $service->getWidth() . ' x ' . $service->getHeight();
                 foreach ($thumbnailSizes as $s) {
                     $service->setFile($fileku);
                     $method = $sizes[$s]['method'];
                     $width = $sizes[$s]['width'];
                     $height = $sizes[$s]['height'];
                     $f = $s . '_' . $fileName . '.' . $extension;
                     $newFile = $dir . DS . $path . DS . $f;
                     /**
                      * Create thumbnail
                      */
                     switch ($method) {
                         case 'resize':
                             $service->resizeLimit($newFile, $width, $height);
                             break;
                         case 'crop':
                             $service->crop($newFile, $width, $height);
                             break;
                     }
                     /*$ret[$s] = array(
                     			'title' => 	$f,
                     			'url'  => $prefixUrl . '/' . $f,
                     			'size' => $width . ' x ' . $height,
                     			'filetype' => $adapter->getMimeType($file),
                     			'type' => $type
                     		);*/
                 }
             }
         }
     }
     /**
      * Return the reponse
      */
     $ret = Zend_Json::encode($ret);
     $this->getResponse()->setBody($ret);
 }
예제 #7
0
 /**
  * convert a shapefile to geojson
  */
 public function shp2jsonAction()
 {
     $dataType = $this->_request->getParam('dataType');
     $response = array();
     // name for the temporary directory -- initializing the variable
     $import_tmpdir = Null;
     try {
         // get all needed config values
         $config = Zend_Registry::get("config");
         if (empty($config->path->ogr2ogr)) {
             throw new Ole_ProcessController_MissingConfigException("ogr2ogr is not configured");
         }
         $ogr2ogr_path = $config->path->ogr2ogr;
         if (empty($config->directory->tmp)) {
             throw new Ole_ProcessController_MissingConfigException("the temporary directory is not configured");
         }
         $tmpdir_path = $config->directory->tmp;
         // build the name for the temp dir for this upload
         $import_tmpdir = rtrim($tmpdir_path, '/') . "/shpimport_" . md5(time() . rand());
         mkdir($import_tmpdir);
         // prepare the filetransfer
         $filetransfer = new Zend_File_Transfer_Adapter_Http();
         $filetransfer->setDestination($import_tmpdir);
         $filetransfer->receive();
         if (!$filetransfer->isUploaded("shp")) {
             throw new Ole_ProcessController_MissingUploadException();
         }
         // limit the upload size
         if ($filetransfer->getFileSize('shp') >= 204800) {
             throw new Ole_ProcessController_UploadSizeException();
         }
         // extract the shapefile
         $shp_name = $this->extractShape($filetransfer->getFileName('shp'), $import_tmpdir);
         if (empty($shp_name)) {
             throw new Ole_ProcessController_MissingUploadException("the zipfile does not seem to contain a shapefile");
         }
         // read shapefile
         $response["geo"] = $this->shapeToGeojson($shp_name, $ogr2ogr_path, $import_tmpdir);
         $response["success"] = True;
         $response["msg"] = "Shapefile successfully uploaded";
     } catch (Ole_ProcessController_MissingConfigException $e) {
         $response["success"] = False;
         $response["msg"] = "Missing Configuration : " . $e->getMessage();
     } catch (Ole_ProcessController_MissingUploadException $e) {
         $response["success"] = False;
         $response["msg"] = "No shapefile uploaded :" . $e->getMessage();
     } catch (Ole_ProcessController_UploadSizeException $e) {
         $response["success"] = False;
         $response["msg"] = "the shapefile uploaded is too big";
     } catch (Ole_ProcessController_ZipException $e) {
         $response["success"] = False;
         $response["msg"] = "error opening zipfile : " . $e->getMessage();
     } catch (Ole_ProcessController_ShapeToGeojsonException $e) {
         $response["success"] = False;
         $response["msg"] = "error reading the shapefile : " . $e->getMessage();
     }
     // remove the temporary files. they will not get removed on uncaught exceptions
     // because PHP lacks a finally block
     if (!empty($import_tmpdir)) {
         $this->recursiveRmDir($import_tmpdir);
     }
     // send html to enable ajax upload
     if ($dataType == 'html') {
         // View contains an empty HTML page as layout
         $this->getHelper('Layout')->disableLayout();
         $this->view->assign('response', $response);
     } else {
         $this->getHelper('Json')->sendJson($response);
     }
 }
예제 #8
0
 public function step3Action()
 {
     $this->view->messages = $this->_flashMessenger->getMessages();
     $sessionPost = new Zend_Session_Namespace('step1Post');
     if (isset($sessionPost) && $sessionPost != null && isset($sessionPost->user_id) && $sessionPost->user_id != "") {
         $formData = array();
         $formErrors = array();
         if ($this->getRequest()->isPost()) {
             $formData = $this->getRequest()->getPost();
             //print_r($formData);exit;
             //=====================START FORM VALIDATION===================================
             //=====================END FORM VALIDATION===================================
             if (count($formErrors) == 0) {
                 //=========insert education history========================
                 if (count($formData['education_type']) > 0 && count($formData['school_name']) > 0 && count($formData['years_attended']) > 0) {
                     for ($e = 0; $e < count($formData['education_type']); $e++) {
                         $education_type = $formData['education_type'][$e];
                         $school_name = $formData['school_name'][$e];
                         $years_attended = $formData['years_attended'][$e];
                         if (isset($education_type) && $education_type != "" && (isset($school_name) && $school_name != "") && (isset($years_attended) && $years_attended != "")) {
                             $educationData = array('user_id' => $sessionPost->user_id, 'education_type' => $education_type, 'school_name' => $school_name, 'years_attended' => $years_attended, 'added_date' => date("Y-m-d H:i:s"), 'updated_date' => date("Y-m-d H:i:s"));
                             $this->modelCandidateEducationHistory->insert($educationData);
                         }
                     }
                 }
                 //=========insert employment history========================
                 if (count($formData['employment_company']) > 0) {
                     for ($em = 0; $em < count($formData['employment_company']); $em++) {
                         $employment_company = $formData['employment_company'][$em];
                         $employment_role = $formData['employment_role'][$em];
                         $employment_location = $formData['employment_location'][$em];
                         $employment_month = $formData['employment_month'][$em];
                         $employment_year = $formData['employment_year'][$em];
                         $employment_responsibilities = $formData['employment_responsibilities'][$em];
                         $employment_achievements = $formData['employment_achievements'][$em];
                         //$employment_file_references=$formData['employment_file_references'][$em];
                         if (isset($employment_company) && $employment_company != "") {
                             $employmentData = array('user_id' => $sessionPost->user_id, 'employment_company' => $employment_company, 'employment_role' => $employment_role, 'employment_location' => $employment_location, 'employment_month' => $employment_month, 'employment_year' => $employment_year, 'employment_responsibilities' => $employment_responsibilities, 'employment_achievements' => $employment_achievements, 'added_date' => date("Y-m-d H:i:s"), 'updated_date' => date("Y-m-d H:i:s"));
                             $empId = $this->modelCandidateEmploymentHistory->insert($employmentData);
                             if (isset($empId) && $empId > 0) {
                                 /**** Uploading File on Server*****/
                                 $upload = new Zend_File_Transfer_Adapter_Http();
                                 $upload->setDestination(USER_UPLOAD_DIR);
                                 $files = $upload->getFileInfo('employment_file_references');
                                 if (isset($files) && count($files) > 0) {
                                     $i = 1;
                                     foreach ($files as $file => $info) {
                                         //echo "<pre>";
                                         //print_r($file);
                                         //echo "</pre>";
                                         //exit;
                                         if ($file == 'employment_file_references_' . $em . '_' && $info['name'] != "") {
                                             if ($upload->isValid($file)) {
                                                 try {
                                                     // upload received file(s)
                                                     $upload->receive($file);
                                                 } catch (Zend_File_Transfer_Exception $e) {
                                                     //echo $e->getMessage();//exit;
                                                 }
                                                 // so, Finally lets See the Data that we received on Form Submit
                                                 $name = $upload->getFileName($file);
                                                 $size = $upload->getFileSize($file);
                                                 # Returns the mimetype for the '$file' form element
                                                 $mimeType = $upload->getMimeType($file);
                                                 $renameFile = time() . $i . $info['name'];
                                                 //echo $renameFile;exit;
                                                 $fullFilePath = USER_UPLOAD_DIR . $renameFile;
                                                 //Rename uploaded file using Zend Framework
                                                 $filterFileRename = new Zend_Filter_File_Rename(array('target' => $fullFilePath, 'overwrite' => true));
                                                 $filterFileRename->filter($name);
                                                 $logoData = array('employment_file_references' => $renameFile);
                                                 $this->modelCandidateEmploymentHistory->update($logoData, 'id=' . $empId);
                                             }
                                         }
                                         $i++;
                                     }
                                 }
                                 /*****End Uploading************/
                             }
                         }
                     }
                 }
                 //=========insert skills and specialization========================
                 if (isset($formData['specializations']) && count($formData['specializations']) > 0) {
                     $specializations = implode(",", $formData['specializations']);
                     $skills = implode(",", $formData['skills']);
                     $skillsData = array('user_id' => $sessionPost->user_id, 'specializations' => $specializations, 'skills' => $skills, 'driving_license' => $driving_license, 'added_date' => date("Y-m-d H:i:s"), 'updated_date' => date("Y-m-d H:i:s"));
                     $this->modelCandidateSkillsSpecializations->insert($skillsData);
                 }
                 //========unset the session of step1 form data====
                 Zend_Session::namespaceUnset('step1Post');
                 //=================================================
                 $this->_redirect('user/register/thanks');
             } else {
                 $this->view->errorMessage = '<div class="div-error">Sorry, unable to add, please try later.</div>';
             }
         }
         $this->view->formData = $formData;
         $this->view->formErrors = $formErrors;
     } else {
         $this->_flashMessenger->addMessage('<div class="div-error">Please enter required field to register.</div>');
         $this->_redirect('user/register/');
     }
 }
예제 #9
0
<?php

// creating the File_Transfer instance (with Http Adapter)
$upload = new Zend_File_Transfer_Adapter_Http();
//	firelog($upload->getFileInfo());
// setting the destination
$UPLOAD_DIR = $_POST['path'];
$upload->setDestination($UPLOAD_DIR);
// adding some validators
//$upload->addValidator('Extension', false, 'csv');*/
// uploading the file if valid
if ($upload->isValid()) {
    try {
        $upload->addFilter('Rename', array('target' => $UPLOAD_DIR . '/' . $upload->getFileName(null, false)));
        $upload->receive();
        if ($upload->isReceived()) {
            $return = array('success' => true, 'message' => 'SUCESS: ' . $upload->getFileName(null, false) . '(' . $upload->getFileSize() . ')');
        } else {
            $return = array('success' => false, 'error' => 'ERROR: File Not Received');
        }
    } catch (Exception $e) {
        $return = array('success' => false, 'error' => 'ERROR: Upload Failure');
    }
} else {
    $return = array('success' => false, 'error' => 'ERROR: File not valid');
}
echo Zend_Json::encode($return);
예제 #10
0
 public function upload()
 {
     if ($this->_helper->Identity()) {
         //Check if images path directory is writable
         if (!is_writable(IMAGE_PATH)) {
             throw new Pas_Exception_NotAuthorised('The images directory is not writable', 500);
         }
         // Create the imagedir path
         $imagedir = IMAGE_PATH . '/' . $this->_helper->Identity()->username;
         //Check if a directory and if not make directory
         if (!is_dir($imagedir)) {
             mkdir($imagedir, 0775, true);
         }
         //Check if the personal image directory is writable
         if (!is_writable($imagedir)) {
             throw new Pas_Exception_NotAuthorised('The user image directory is not writable', 500);
         }
         // Get images and do the magic
         $adapter = new Zend_File_Transfer_Adapter_Http();
         $adapter->setDestination($imagedir);
         $adapter->setOptions(array('useByteString' => false));
         // Only allow good image files!
         $adapter->addValidator('Extension', false, 'jpg, tiff');
         $adapter->addValidator('NotExists', false, array($imagedir));
         $files = $adapter->getFileInfo();
         // Create an array for the images
         $images = array();
         // Loop through the submitted files
         foreach ($files as $file => $info) {
             // file uploaded & is valid
             //                if (!$adapter->isUploaded($file)) continue;
             //                if (!$adapter->isValid($file)) continue;
             // Clean up the image name for crappy characters
             $filename = pathinfo($adapter->getFileName($file));
             // Instantiate the renamer
             $reNamer = new Pas_Image_Rename();
             // Clean the filename
             $cleaned = $reNamer->strip($filename['filename'], $filename['extension']);
             // Rename the file
             $adapter->addFilter('rename', $cleaned);
             // receive the files into the user directory
             $adapter->receive($file);
             // this has to be on top
             if (!$adapter->hasErrors()) {
                 // Create the object for reuse
                 $image = new stdClass();
                 $image->cleaned = $cleaned;
                 $image->basename = $filename['basename'];
                 $image->extension = $filename['extension'];
                 $image->thumbnailUrl = $this->createThumbnailUrl($adapter->getFileName($file, false));
                 $image->deleteUrl = $this->_createUrl($adapter->getFileName($file, false));
                 $image->path = $adapter->getFileName($file);
                 $image->name = $adapter->getFileName($file, false);
                 $image->size = $adapter->getFileSize($file);
                 $image->mimetype = $adapter->getMimeType($file);
                 // The secure ID stuff for linking images
                 $image->secuid = $this->_helper->GenerateSecuID();
                 // Get the image dims
                 $imagesize = getimagesize($adapter->getFileName($file));
                 $image->width = $imagesize[0];
                 $image->height = $imagesize[1];
                 $params = $this->getAllParams();
                 $image->findID = $params['findID'];
                 // Create the raw image url
                 $image->url = $this->_createUrl($adapter->getFileName($file, false));
                 $image->deleteType = 'DELETE';
                 $images[] = $image;
                 $slides = new Slides();
                 $insert = $slides->addAndResize($images);
                 $this->view->data = $images;
                 $this->_helper->solrUpdater->update('images', (int) $insert);
                 $this->_helper->solrUpdater->update('objects', $params['findID'], 'artefacts');
             } else {
                 $image = new stdClass();
                 $image->error = $adapter->getErrors();
                 $images[] = $image;
                 $this->view->data = $images;
             }
         }
     } else {
         throw new Pas_Exception_NotAuthorised('Your account does not seem enabled to do this', 500);
     }
 }
 public function step2Action()
 {
     $this->view->messages = $this->_flashMessenger->getMessages();
     $sessionPost = new Zend_Session_Namespace('step1Post');
     if (isset($sessionPost) && $sessionPost != null && isset($sessionPost->formData) && count($sessionPost->formData) > 0) {
         //print_r($sessionPost->formData);
         $step1formData = $sessionPost->formData;
         $formData = array();
         $formErrors = array();
         $formData['business_name'] = $step1formData['business_name'];
         if ($this->getRequest()->isPost()) {
             $formData = $this->getRequest()->getPost();
             //print_r($formData);exit;
             //=====================START FORM VALIDATION===================================
             if (!isset($formData['business_name']) || trim($formData['business_name']) == "") {
                 $formErrors['business_name'] = "Please enter your business name";
             }
             //=====================END FORM VALIDATION===================================
             if (count($formErrors) == 0) {
                 //======inserting data to the candidate table===============
                 $activationCode = CommonFunctions::generateGUID();
                 $activationStartTime = strtotime(date('Y-m-d H:i:s'));
                 $activationExpireTime = strtotime(date('Y-m-d H:i:s', strtotime("+1 days")));
                 //echo "TIME::::".$activationStartTime."====TIME 2:::".strtotime(date('Y-m-d H:i:s'))."===EXPIRE TIME:::".$activationExpireTime;exit;
                 $compData = array('user_name' => $step1formData['user_name'], 'user_email' => $step1formData['user_email'], 'user_password' => $step1formData['user_password'], 'added_date' => date("Y-m-d H:i:s"), 'updated_date' => date("Y-m-d H:i:s"), 'status' => 1, 'activation_code' => $activationCode, 'activation_start_time' => $activationStartTime, 'activation_expire_time' => $activationExpireTime);
                 $lastId = $this->modelCompany->insert($compData);
                 if ($lastId) {
                     //========unset the session for step1 form data====
                     Zend_Session::namespaceUnset('step1Post');
                     //=================================================
                     //======inserting data to the company profile table===============
                     $agree = isset($step1formData['agree']) && $step1formData['agree'] != "" ? 1 : 0;
                     $signup_newsletter = isset($step1formData['signup_newsletter']) && $step1formData['signup_newsletter'] != "" ? 1 : 0;
                     $notify_jobs = isset($step1formData['notify_jobs']) && $step1formData['notify_jobs'] != "" ? 1 : 0;
                     $profileData = array('company_id' => $lastId, 'business_name' => $formData['business_name'], 'contact_name' => $step1formData['contact_name'], 'post_code' => $formData['post_code'], 'state' => $formData['state'], 'industry_1' => $formData['industry_1'], 'industry_2' => $formData['industry_2'], 'about_us' => $formData['about_us'], 'opening_hours' => $formData['opening_hours'], 'telephone' => $formData['telephone'], 'website' => $formData['website'], 'abn' => $formData['abn'], 'acn' => $formData['acn'], 'facebook_url' => $formData['facebook_url'], 'twitter_url' => $formData['twitter_url'], 'shifte_url' => $formData['shifte_url'], 'agree' => $agree, 'signup_newsletter' => $signup_newsletter, 'notify_jobs' => $notify_jobs, 'added_date' => date("Y-m-d H:i:s"), 'updated_date' => date("Y-m-d H:i:s"));
                     $profileId = $this->modelCompanyProfiles->insert($profileData);
                     if ($profileId > 0) {
                         /**** Uploading Logo File on Server*****/
                         $upload = new Zend_File_Transfer_Adapter_Http();
                         $upload->setDestination(COMPANY_UPLOAD_DIR);
                         $files = $upload->getFileInfo();
                         if (isset($files) && count($files) > 0) {
                             $i = 1;
                             foreach ($files as $file => $info) {
                                 if ($info['name'] != "") {
                                     if ($upload->isValid($file)) {
                                         try {
                                             // upload received file(s)
                                             $upload->receive($file);
                                         } catch (Zend_File_Transfer_Exception $e) {
                                             //echo $e->getMessage();//exit;
                                         }
                                         // so, Finally lets See the Data that we received on Form Submit
                                         $name = $upload->getFileName($file);
                                         $size = $upload->getFileSize($file);
                                         # Returns the mimetype for the '$file' form element
                                         $mimeType = $upload->getMimeType($file);
                                         $renameFile = time() . $i . '.jpg';
                                         $fullFilePath = COMPANY_UPLOAD_DIR . $renameFile;
                                         //Rename uploaded file using Zend Framework
                                         $filterFileRename = new Zend_Filter_File_Rename(array('target' => $fullFilePath, 'overwrite' => true));
                                         $filterFileRename->filter($name);
                                         $logoData = array('logo' => $renameFile);
                                         $this->modelCompanyProfiles->update($logoData, 'id=' . $profileId);
                                     }
                                 }
                                 $i++;
                             }
                         }
                         /*****End Uploading************/
                     }
                     $this->_redirect('company/register/thanks');
                 } else {
                     $this->view->errorMessage = '<div class="div-error">Please enter required fieild to register.</div>';
                 }
             } else {
                 $this->view->errorMessage = '<div class="div-error">Sorry, unable to register, please try later.</div>';
             }
         }
         $this->view->formData = $formData;
         $this->view->formErrors = $formErrors;
         $this->view->industryList = $this->modelIndustries->fetchAll('status=1');
     } else {
         $this->_flashMessenger->addMessage('<div class="div-error">Please enter required fieild to register.</div>');
         $this->_redirect('company/register/');
     }
 }
예제 #12
0
 public function uploadformAction()
 {
     try {
         $this->view->maxFileZise = 9000000;
         $request = $this->getRequest();
         $fileDescription = $request->getParam('file_description', '');
         $this->_folder = $request->getParam('folder', 'all');
         //echo $_SERVER ['DOCUMENT_ROOT'];
         if ($request->getPost()) {
             $folder = 'files';
             $targetPath = UPLOAD_PATH . '/' . $folder . '/' . $this->_folder . '/';
             //echo $targetPath;
             $adapter = new Zend_File_Transfer_Adapter_Http();
             $adapter->setDestination($targetPath);
             if (!$adapter->isValid()) {
                 throw new Exception('Bad file data: ' . implode(',', $adapter->getMessages()));
             }
             $filePath = $adapter->getFileName();
             $fileSize = $adapter->getFileSize();
             $fileInfo = pathinfo($filePath);
             $fileExtension = $fileInfo['extension'];
             $fileNameUTF = basename($filePath, '.' . $fileExtension);
             $fileName = iconv("UTF-8", "TIS-620", $fileNameUTF);
             $fileUrl = '/' . $folder . '/' . $this->_folder . '/' . $fileName . '.' . $fileExtension;
             $thumbnailName = $fileName . '_thumbnails' . '.' . $fileExtension;
             $thumbnailUrl = "/files/" . $this->_folder . '/' . $thumbnailName;
             $renamePath = $targetPath . $fileName . '.' . $fileExtension;
             $adapter->addFilter('Rename', $renamePath);
             //$fileName = uniqid ();
             if ($this->isBadFile($fileExtension)) {
                 throw new Exception('Bad file type  : not accept \'' . $fileExtension . '\'');
             }
             $file = new Cms_Model_File();
             $result = $file->fetchAll("name='{$fileNameUTF}' AND folder='{$this->_folder}'");
             if (count($result) > 0) {
                 $this->_setWarning('Duplicate file name :' . $fileNameUTF);
                 throw new Exception('Duplicate file name :' . $fileNameUTF);
             }
             $file = new Cms_Model_File();
             $fileNameUTF = iconv("TIS-620", "UTF-8", $fileName);
             $fileUrlUTF = iconv("TIS-620", "UTF-8", $fileUrl);
             $file->setName($fileNameUTF)->setPath($fileUrlUTF)->setType($fileExtension)->setDescription($fileDescription);
             if ($this->_folder != 'all') {
                 $file->setFolder($this->_folder);
             }
             $file->setCreated(new DateTime());
             $file->setCreatedBy(Sam_Auth::getInstance()->getUser()->getId());
             $adapter->receive();
             if ($this->isImage($fileExtension)) {
                 $this->rezise($renamePath, $targetPath, $thumbnailName);
                 $thumbnailUrlUTF = iconv("TIS-620", "UTF-8", $thumbnailUrl);
                 $file->setThumbnailPath($thumbnailUrlUTF);
             }
             $file->save();
             $this->view->layout()->infocode = 22;
         }
     } catch (Zend_File_Transfer_Exception $e) {
         $this->_setWarning($e->getMessage() . $targetPath);
         //throw new Exception ( 'Bad file data: ' . $e->getMessage () );
     } catch (Exception $e) {
         $this->_setWarning($e->getMessage());
         //throw new Exception ( 'Bad file data: ' . $e->getMessage () );
     }
 }
예제 #13
0
 /** Add an image for a ruler
  * @access public
  * @return void
  */
 public function addrulerimageAction()
 {
     $form = new AddRulerImageForm();
     $form->rulerID->setValue($this->getParam('rulerid'));
     $form->submit->setLabel('Add an image for a ruler');
     $this->view->form = $form;
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         if ($form->isValid($formData)) {
             $upload = new Zend_File_Transfer_Adapter_Http();
             $upload->addValidator('NotExists', false, array('./assets/rulers/'));
             $filesize = $upload->getFileSize();
             if ($upload->isValid()) {
                 $filename = $form->getValue('image');
                 $insertData = $form->getValues();
                 $insertData['filesize'] = $filesize;
                 $rulers = new RulerImages();
                 $upload->receive();
                 $rulers->add($insertData);
                 $this->getFlash()->addMessage('The image has been resized.');
                 $this->redirect($this->_redirectUrl . 'romanruler/id/' . $this->getParam('rulerid'));
             } else {
                 $this->getFlash()->addMessage('There is a problem with your upload.Probably that image exists.');
                 $this->view->errors = $upload->getMessages();
             }
         } else {
             $this->getFlash()->addMessage($this->_formErrors);
             $form->populate($formData);
         }
     }
 }