public function indexAction() { $request = $this->getRequest(); if (!$request->isPost()) { $this->getHelper('Redirector')->goto('index', 'index'); // action, controller } $c = Zend_Registry::get('config'); $apiKey = Zend_Filter::get($request->getPost('apikey'), 'Alnum'); try { $user = User::findByApiKey($apiKey); if ($user === null) { $this->view->assign('response', 'Invalid API key.'); } else { $user->setIp($request->getServer('REMOTE_ADDR')); } } catch (Zend_Db_Adapter_Exception $e) { $this->view->assign('response', $e->getMessage()); } if (isset($user)) { if ($_FILES['file']['error'] === 0) { $file = new File(); $file->setFileName($_FILES['file']['name']); $file->setFileSize($_FILES['file']['size']); $file->setTmpName($_FILES['file']['tmp_name']); $file->setUploadedBy($user); try { $url = $file->save(); $this->view->assign('response', $url . "\n"); } catch (Exception $e) { $this->view->assign('response', $e->getMessage()); } } else { switch ($_FILES['file']['error']) { case UPLOAD_ERR_OK: break; case UPLOAD_ERR_INI_SIZE: throw new Exception('The uploaded file exceeds the upload_max_filesize directive (' . ini_get('upload_max_filesize') . ') in php.ini.'); break; case UPLOAD_ERR_FORM_SIZE: throw new Exception('The uploaded file exceeds the MAX_FILE_SIZE directive' . 'that was specified in the HTML form.'); break; case UPLOAD_ERR_PARTIAL: throw new Exception('The uploaded file was only partially uploaded.'); break; case UPLOAD_ERR_NO_FILE: throw new Exception('No file was uploaded.'); break; case UPLOAD_ERR_NO_TMP_DIR: throw new Exception('Missing a temporary folder.'); break; case UPLOAD_ERR_CANT_WRITE: throw new Exception('Failed to write file to disk.'); break; default: throw new Exception('Unknown File Error.'); } } } }
public function indexAction() { $request = $this->getRequest(); $c = Zend_Registry::get('config'); $ip = $request->getServer('REMOTE_ADDR'); $accessCode = Zend_Filter::get($request->getParam('accessCode'), 'Alnum'); try { $file = File::findByAccessCode($accessCode); if (strlen($accessCode) !== (int) $c->file->accessCodeLength) { $this->view->assign('error', 'Erroneous input.'); } else { if ($file === null) { $this->view->assign('error', 'Invalid access code.'); } else { $this->getHelper('ViewRenderer')->setNoRender(); $response = $this->getResponse(); if ($file->isAttachment()) { // fix for IE catching or PHP bug issue header("Pragma: public"); header("Expires: 0"); // set expiration time header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); // browser must download file from server instead of cache // force download dialog header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=\"" . $file->getName() . "\";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($c->fileDir . $file->getName())); } else { $response->setHeader('Content-Type', $file->getType()); } if ($file->getExtension() === 'phps' || $file->getExtension() === 'php') { highlight_file($c->fileDir . $file->getName()); } else { readfile($c->fileDir . $file->getName()); } } } } catch (Zend_Db_Adapter_Exception $e) { $this->view->assign('error', $e->getMessage()); } }
/** * ZF-2105 */ public function testUsageOfOldStaticFactory() { set_error_handler(array($this, 'errorHandlerIgnore')); $filteredValue = Zend_Filter::get('1a2b3c4d', 'Digits'); $this->assertEquals('1234', $filteredValue); restore_error_handler(); }
/** * Ensures that if we specify a validator class basename that doesn't * exist in the namespace, get() throws an exception. */ public function testStaticFactoryClassNotFound() { try { $this->assertTrue(Zend_Filter::get('1234', 'UnknownFilter')); $this->fail('Expected to catch Zend_Filter_Exception'); } catch (Zend_Exception $e) { $this->assertType('Zend_Filter_Exception', $e, 'Expected exception of type Zend_Filter_Exception, got ' . get_class($e)); $this->assertEquals("Filter class not found from basename 'UnknownFilter'", $e->getMessage()); } }
public function updateJob() { if ($this->_post) { //print_r($this->_post); die; //clean possible scriptings foreach ($this->_post as $key => $value) { //TODO: the files and pahses through the sanit. if ($key == 'client' || $key == 'media') { continue; } else { $this->_post[$key] = Zend_Filter::get($value, 'StripTags'); } } //validate the post $validation = $this->validate($this->_post); if (isset($validation['Error'])) { $validation['post'] = $this->_post; return $validation; } //convert date into zend date object $this->_post['datePublished'] = new Zend_Date($this->_post['datePublished']); //prepare the files for db insertion (add paths(full and db), identifier ...) if (isset($this->_post['media'])) { $this->_prepareFilesForDb($this->_post['media']); } //upload the new files if (isset($this->_post['media'])) { $return = $this->_upload($this->_post['media']); if ($return !== true) { //return the post for the form population $return['post'] = $this->_post; return $return; } } //update data in db $oJob = new Showcase_Controller_Action_Helper_Admin_Job(); $return = $oJob->updateJob($this->_post); //confirm if ($return == false) { //delete the uploaded files if (isset($this->_post['media'])) { //Delete the files foreach ($this->_post['media'] as $aFiles) { $this->_deleteFiles($aFiles); } } //report error to screen $return['post'] = $this->_post; $return['Error'] = 'There was a problem saving to the database. Please try again later.'; return $return; } else { if (isset($this->_post['media'])) { //delete old files since the new ones are there now. foreach ($this->_post['media'] as $key => $value) { if ($key == 'images') { //print $this->_uploadPathImages.$this->_post['oldImage']; die; if (file_exists($this->_uploadPathImages . $this->_post['oldImageName'])) { @unlink($this->_uploadPathImages . $this->_post['oldImageName']); @unlink($this->_uploadPathImages . $this->_post['oldThumbName']); } } if ($key == 'documents') { if (file_exists($this->_uploadPathMedia . $this->_post['oldDocName'])) { @unlink($this->_uploadPathMedia . $this->_post['oldDocName']); } } } } //flush cache Showcase_Admin::flushCache(); //return success return true; } } }