예제 #1
0
파일: MimeTypeTest.php 프로젝트: travisj/zf
 public function testSetAndGetMagicFile()
 {
     $validator = new Zend_Validate_File_MimeType('image/gif');
     if (!empty($_ENV['MAGIC'])) {
         $mimetype = $validator->getMagicFile();
         $this->assertEquals($_ENV['MAGIC'], $mimetype);
     }
     try {
         $validator->setMagicFile('/unknown/magic/file');
     } catch (Zend_Validate_Exception $e) {
         $this->assertContains('can not be', $e->getMessage());
     }
 }
예제 #2
0
파일: File.php 프로젝트: rom1git/Centurion
 /**
  * @param $value
  * @param null $file
  * @return bool
  */
 public function getMimeType($value, $file = null)
 {
     if ($file === null) {
         $file = array('type' => null, 'name' => $value);
     }
     // Is file readable ?
     //$1 'Zend/Loader.php';
     if (!Zend_Loader::isReadable($value)) {
         return $this->_throw($file, self::NOT_READABLE);
     }
     $validate = new Zend_Validate_File_MimeType('');
     $mimefile = $validate->getMagicFile();
     if (class_exists('finfo', false)) {
         $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
         if (!empty($mimefile) && empty($finfo)) {
             $finfo = @finfo_open($const, $mimefile);
         }
         if (empty($finfo)) {
             $finfo = @finfo_open($const);
         }
         $type = null;
         if (!empty($finfo)) {
             $type = finfo_file($finfo, $value);
         }
     }
     if (empty($type) && (function_exists('mime_content_type') && ini_get('mime_magic.magicfile'))) {
         $type = mime_content_type($value);
     }
     if (empty($type) && $this->_headerCheck) {
         $type = $file['type'];
     }
     if (empty($type)) {
         return $this->_throw($file, self::NOT_DETECTED);
     }
     return $type;
 }