/** * Ensures that the validator follows expected behavior * * @return void */ public function testBasic() { $valuesExpected = array(array(null, true), array('jpeg', true), array('test/notype', false), array('image/gif, image/jpeg', true), array(array('image/vasa', 'image/jpeg'), true), array(array('image/jpeg', 'gif'), true), array(array('image/gif', 'gif'), false)); $files = array('name' => 'picture.jpg', 'type' => 'image/jpeg', 'size' => 200, 'tmp_name' => dirname(__FILE__) . '/_files/picture.jpg', 'error' => 0); foreach ($valuesExpected as $element) { $validator = new Zend_Validate_File_IsImage($element[0]); $this->assertEquals($element[1], $validator->isValid(dirname(__FILE__) . '/_files/picture.jpg', $files)); } }
/** * @ZF-8111 */ public function testErrorMessages() { $files = array('name' => 'picture.jpg', 'type' => 'image/jpeg', 'size' => 200, 'tmp_name' => dirname(__FILE__) . '/_files/picture.jpg', 'error' => 0); $validator = new Zend_Validate_File_IsImage('test/notype'); $validator->enableHeaderCheck(); $this->assertFalse($validator->isValid(dirname(__FILE__) . '/_files/picture.jpg', $files)); $error = $validator->getMessages(); $this->assertTrue(array_key_exists('fileIsImageFalseType', $error)); }
public function photoAction() { $this->_helper->viewRenderer->setNoRender(true); $uri = $this->getRequest()->getRequestUri(); $regex = '#^(.+)/photo/(.+).png$#i'; if (preg_match($regex, $uri, $v)) { $de = str_split($this->_params['user']); $file = SYS_ENTRY . '/data/user/' . $de[0] . '/' . $de[1] . '/' . $de[2]; $file .= '/' . $this->_params['user'] . '/' . $v[2] . '.png'; if (!file_exists($file)) { $file = SYS_ENTRY . '/data/user/' . $v[2] . '.png'; if (!file_exists($file)) { die; } } } else { die; } ob_end_clean(); $ims = getimagesize($file); header("Cache-Control: private"); header("Pragma: cache"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 31536000) . " GMT"); header("Content-type: image/png"); $validator = new Zend_Validate_File_IsImage(); if ($validator->isValid($file, array('type' => 'image/png'))) { header("Content-Disposition: inline; filename=photo"); } else { header('Content-Disposition: attachment; filename=photo'); } header("Content-Length: " . filesize($file)); $fp = fopen($file, "rb"); fpassthru($fp); fclose($fp); die; }