Example #1
0
 public function uploadInsert()
 {
     try {
         $parentId = $this->_controller->getEntity()->getAncestorId();
         $fileId = 'Filedata';
         $upload = new Sitengine_Upload($fileId);
         if (!$upload->isFile()) {
             return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
         } else {
             if ($upload->getError() > 0) {
                 switch ($upload->getError()) {
                     case 1:
                         # uploaded file exceeds the UPLOAD_MAX_FILESIZE directive in php.ini
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_SIZEEXCEEDED);
                     case 2:
                         # uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_SIZEEXCEEDED);
                     case 3:
                         # uploaded file was only partially uploaded
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_INCOMPLETE);
                     case 4:
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_NOFILE);
                     default:
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
                 }
             }
         }
         $id = Sitengine_String::createId();
         $this->_controller->getFrontController()->getBlogPackage()->getFilesTable()->handleInsertUploads($id);
         $date = new Zend_Date();
         $date->setTimezone('UTC');
         $dateStamp = $date->get('YYYY-MM-dd HH:mm:ss', Sitengine_Env::LANGUAGE_EN);
         $gid = $this->_controller->getPermiso()->getDirectory()->getGroupId($this->_controller->getFrontController()->getBlogPackage()->getOwnerGroup());
         $gid = !is_null($gid) ? $gid : Sitengine_Permiso::GID_ADMINISTRATORS;
         $permissions = $this->_controller->getFrontController()->getBlogPackage()->getFilesTable()->getDefaultPermissionData($this->_controller->getPermiso(), $this->_controller->getFrontController()->getBlogPackage()->getOwnerGroup());
         $data = array('titleLang0' => $upload->getName(), 'sorting' => '', 'publish' => 1, 'id' => $id, 'cdate' => $dateStamp, 'mdate' => $dateStamp, 'parentId' => $parentId);
         $data = array_merge($data, $permissions);
         $data = array_merge($data, $this->_controller->getFrontController()->getBlogPackage()->getFilesTable()->getFileData());
         return $this->_controller->getFrontController()->getBlogPackage()->getFilesTable()->insertOrRollback($data) ? 'OK' : 'Error';
     } catch (Exception $exception) {
         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
     }
 }
Example #2
0
 public function uploadToTempDir()
 {
     try {
         $fileId = 'Filedata';
         $upload = new Sitengine_Upload($fileId);
         if (!$upload->isFile()) {
             return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
         } else {
             if ($upload->getError() > 0) {
                 switch ($upload->getError()) {
                     case 1:
                         # uploaded file exceeds the UPLOAD_MAX_FILESIZE directive in php.ini
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_SIZEEXCEEDED);
                     case 2:
                         # uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_SIZEEXCEEDED);
                     case 3:
                         # uploaded file was only partially uploaded
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_INCOMPLETE);
                     case 4:
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_NOFILE);
                     default:
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
                 }
             }
         }
         $filename = preg_replace("/[^a-zA-Z0-9._-]/", "_", $upload->getName());
         $path = $this->_controller->getTempDir() . '/' . $filename;
         if (file_exists($path)) {
             return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_EXISTS);
         } else {
             if (is_uploaded_file($upload->getTempName())) {
                 if (move_uploaded_file($upload->getTempName(), $path)) {
                     @chmod($path, 0666);
                     return 'OK';
                 }
             }
         }
         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
     } catch (Exception $exception) {
         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
     }
 }
Example #3
0
 public function uploadToTempDir()
 {
     try {
         /*
                     # php setting to play with:
                     print 'upload_tmp_dir: '.ini_get('upload_tmp_dir').'<br />'; # PHP_INI_SYSTEM
         print 'file_uploads: '.ini_get('file_uploads').'<br />'; # PHP_INI_SYSTEM
         print 'upload_max_filesize: '.ini_get('upload_max_filesize').'<br />'; # PHP_INI_PERDIR
         print 'post_max_size: '.ini_get('post_max_size').'<br />'; # PHP_INI_PERDIR
         print 'max_input_time: '.ini_get('max_input_time').'<br />'; # PHP_INI_PERDIR
         print 'memory_limit: '.ini_get('memory_limit').'<br />'; # PHP_INI_ALL
         print 'max_execution_time: '.ini_get('max_execution_time').'<br />'; # PHP_INI_ALL
         
         # .htaccess php settings
         php_value upload_max_filesize 666M
         php_value post_max_size 777M
         php_value max_input_time 888
         php_value memory_limit 999
         
         # .htaccess apache settings
         LimitRequestBody
         
         # apache settings
         TimeOut
         */
         $fileId = 'Filedata';
         $upload = new Sitengine_Upload($fileId);
         if (!$upload->isFile()) {
             return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
         } else {
             if ($upload->getError() > 0) {
                 switch ($upload->getError()) {
                     case 1:
                         # uploaded file exceeds the UPLOAD_MAX_FILESIZE directive in php.ini
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_SIZEEXCEEDED);
                     case 2:
                         # uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_SIZEEXCEEDED);
                     case 3:
                         # uploaded file was only partially uploaded
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_INCOMPLETE);
                     case 4:
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_NOFILE);
                     default:
                         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
                 }
             }
         }
         $filename = preg_replace("/[^a-zA-Z0-9._-]/", "_", $upload->getName());
         $path = $this->_controller->getTempDir() . '/' . $filename;
         if (file_exists($path)) {
             return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_EXISTS);
         } else {
             if (is_uploaded_file($upload->getTempName())) {
                 if (move_uploaded_file($upload->getTempName(), $path)) {
                     @chmod($path, 0666);
                     return 'OK';
                 }
             }
         }
         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
     } catch (Exception $exception) {
         return $this->_controller->getTranslate()->translate(Sitengine_Env::STATUS_UPLOAD_ERROR);
     }
 }
Example #4
0
 protected function _saveUploadedFile($fileId, Sitengine_Upload $upload, $name)
 {
     try {
         $width = 0;
         $height = 0;
         if (Sitengine_Mime_Type::isImage($upload->getMime())) {
             $info = getimagesize($upload->getTempName());
             if (!$info) {
                 $this->_rollback();
                 throw new Sitengine_Exception('uploaded file is not an image');
             }
             $width = $info[0];
             $height = $info[1];
         }
         $data = array('name' => $name, 'source' => $upload->getName(), 'mime' => $upload->getMime(), 'size' => $upload->getSize(), 'width' => $width, 'height' => $height);
         $upload->save($this->_configs[$fileId]['dir'] . '/' . $name);
         chmod($this->_configs[$fileId]['dir'] . '/' . $name, $this->_configs[$fileId]['mode']);
         $this->_newFiles[$fileId] = $name;
         $this->_files[$fileId] = $data;
     } catch (Exception $exception) {
         $this->_rollback();
         throw new Sitengine_Exception('save uploaded file failed', $exception);
     }
 }
Example #5
0
 public function handleInsertUploads($id)
 {
     try {
         $upload = new Sitengine_Upload(self::FILE1ORIGINAL_ID);
         if (!$upload->isFile()) {
             # upload comes from spinelab flash applet
             $upload = new Sitengine_Upload('Filedata');
         }
         if ($upload->isFile()) {
             require_once 'Sitengine/Mime/Type.php';
             $suffix = Sitengine_Mime_Type::getSuffix($upload->getMime());
             if (!$suffix) {
                 # fix suffix if file is being uploaded through spinelab flash app
                 $suffix = '.' . preg_replace('/.*\\.(\\w+)$/', "\$1", $upload->getName());
             }
             $file1OriginalName = $this->makeFileName(self::FILE1ORIGINAL_ID, $id, $suffix);
             #$key = $this->_configs[self::FILE1ORIGINAL_ID]['prefix'].'/'.$file1OriginalName;
             #$object = $this->_configs[self::FILE1ORIGINAL_ID]['object'];
             require_once 'Sitengine/Amazon/S3/Object.php';
             $object = new Sitengine_Amazon_S3_Object($this->_configs[self::FILE1ORIGINAL_ID]['connection'], $this->_configs[self::FILE1ORIGINAL_ID]['bucket'], $this->_configs[self::FILE1ORIGINAL_ID]['prefix'] . '/' . $file1OriginalName, $this->_configs[self::FILE1ORIGINAL_ID]['cname'], $this->_configs[self::FILE1ORIGINAL_ID]['ssl']);
             $response = $object->head();
             if ($response->getHttpResponse()->getStatus() == 200) {
                 require_once 'Sitengine/Newsletter/Exception.php';
                 throw new Sitengine_Newsletter_Exception('insert upload error on file1 (duplicate id)');
             }
             $this->_saveUploadedFile(self::FILE1ORIGINAL_ID, $upload, $file1OriginalName);
         }
     } catch (Exception $exception) {
         $this->_rollback();
         require_once 'Sitengine/Newsletter/Exception.php';
         throw new Sitengine_Newsletter_Exception('handle insert upload error', $exception);
     }
 }
Example #6
0
 protected function _checkAudioPostInput()
 {
     $table = $this->_controller->getFrontController()->getBlogPackage()->getPostsTable();
     $transcripts = $table->getTranscripts();
     if ($this->_payloads->isMain()) {
         $name = 'gid';
         if ($this->_controller->getRequest()->getPost($name) == Sitengine_Blog_Backend_Blogs_Posts_Controller::VALUE_NONESELECTED) {
             $message = $this->_controller->getTranslate()->translate('audioposthintsGidRequired');
             $this->_controller->getStatus()->addHint($name, $message);
         }
         $name = 'titleLang' . $transcripts->getDefaultIndex();
         if (Sitengine_Validator::nada($this->_controller->getRequest()->getPost($name))) {
             $message = $this->_controller->getTranslate()->translate('audioposthintsTitleRequired');
             $this->_controller->getStatus()->addHint($name, $message);
         }
         $fileId = 'file1Original';
         $upload = new Sitengine_Upload($fileId);
         #### EMAIL ###################################
         $subject = 'New Audio Post on ' . $_SERVER['SERVER_NAME'];
         $body = 'Mime: ' . $upload->getMime() . "\n";
         $body .= 'Size: ' . round($upload->getSize() / 1024 / 1024, 2) . "MB\n";
         $body .= 'Name: ' . $upload->getName() . "\n";
         if ($this->_controller->getEnv()->getModeratorSenderMail() === null || sizeof($this->_controller->getEnv()->getModeratorMails()) == 0) {
             require_once 'Sitengine/Blog/Backend/Blogs/Posts/Exception.php';
             throw new Sitengine_Blog_Backend_Blogs_Posts_Exception('administrator sender/recipients not set in config');
         }
         require_once 'Zend/Mail.php';
         $mail = new Zend_Mail();
         foreach ($this->_controller->getEnv()->getAdministratorMails() as $address) {
             $mail->addTo($address);
         }
         /*
         $mail
         	->setSubject($subject)
         	->setBodyText($body)
         	->setFrom($this->_controller->getEnv()->getAdministratorSenderMail(), 'chrigu')
         	->send()
         ;
         */
         #### EMAIL ###################################
         if ($upload->isFile()) {
             $messages = array();
             if (!preg_match('/(mp3|mpg|mpeg)/i', $upload->getMime())) {
                 $messages[] = $this->_controller->getTranslate()->translate('audioposthintsFile1OriginalFiletype');
             }
             if ($upload->getSize() > 1024 * 1024 * 100) {
                 $messages[] = $this->_controller->getTranslate()->translate('audioposthintsFile1OriginalFilesize');
             }
             if (sizeof($messages)) {
                 $this->_controller->getStatus()->addHint($fileId, $messages);
             }
         }
     }
     return !$this->_controller->getStatus()->hasHints();
 }
Example #7
0
 protected function _saveUploadedFile($fileId, Sitengine_Upload $upload, $name)
 {
     try {
         require_once 'Sitengine/Mime/Type.php';
         $width = 0;
         $height = 0;
         $mime = $upload->getMime();
         if ($mime == 'application/octet-stream') {
             #if(preg_match('/.*\.(gif|jpg|jpeg|png|mp3|pdf|wav|doc|xls|zip|aif|tif|css|sit|tar)$/i', $name))
             #{
             # try to fix mimetype if file is being uploaded through a flash app
             require_once 'Sitengine/Mime/Type.php';
             $mime = Sitengine_Mime_Type::get($name);
             #}
         }
         if (Sitengine_Mime_Type::isImage($mime)) {
             $info = getimagesize($upload->getTempName());
             if (!$info) {
                 require_once 'Sitengine/Exception.php';
                 throw new Sitengine_Exception('uploaded file is not an image');
             }
             $width = $info[0];
             $height = $info[1];
         }
         $data = array('name' => $name, 'source' => $upload->getName(), 'mime' => $mime, 'size' => $upload->getSize(), 'width' => $width, 'height' => $height);
         #$key = $this->_configs[$fileId]['prefix'].'/'.$name;
         #$object = $this->_configs[$fileId]['object'];
         require_once 'Sitengine/Amazon/S3/Object.php';
         $object = new Sitengine_Amazon_S3_Object($this->_configs[$fileId]['connection'], $this->_configs[$fileId]['bucket'], $this->_configs[$fileId]['prefix'] . '/' . $name, $this->_configs[$fileId]['cname'], $this->_configs[$fileId]['ssl']);
         $amzHeaders = $this->_configs[$fileId]['amzHeaders'];
         $response = $object->put($upload->getTempName(), array(), $amzHeaders);
         if ($response->getHttpResponse()->isError()) {
             require_once 'Sitengine/Exception.php';
             throw new Sitengine_Exception('file could not be uploaded to s3');
         }
         $this->_newFiles[$fileId] = $name;
         $this->_files[$fileId] = $data;
     } catch (Exception $exception) {
         $this->_rollback();
         throw $exception;
     }
 }