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); } }
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); } }
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); } }
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); } }
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); } }
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(); }
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; } }