Sfoglia il codice sorgente

[ZF-7242] Zend_File/Zend_Validate:

 - changed recognition of finfo component
 

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16645 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 anni fa
parent
commit
37b15d7450

+ 13 - 6
library/Zend/File/Transfer/Adapter/Abstract.php

@@ -1211,19 +1211,26 @@ abstract class Zend_File_Transfer_Adapter_Abstract
                 throw new Zend_File_Transfer_Exception("File '{$value['name']}' does not exist");
             }
 
-            if (class_exists('finfo', false) && ((!empty($value['options']['magicFile'])) or (defined('MAGIC')))) {
+            if (class_exists('finfo', false)) {
                 if (!empty($value['options']['magicFile'])) {
                     $mime = new finfo(FILEINFO_MIME, $value['options']['magicFile']);
                 } else {
                     $mime = new finfo(FILEINFO_MIME);
                 }
 
-                $result[$key] = $mime->file($file);
+                if ($mime !== false) {
+                    $result[$key] = $mime->file($file);
+                }
+
                 unset($mime);
-            } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
-                $result[$key] = mime_content_type($file);
-            } else {
-                $result[$key] = $value['type'];
+            }
+
+            if (empty($result[$key])) {
+                if (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
+                    $result[$key] = mime_content_type($file);
+                } else {
+                    $result[$key] = $value['type'];
+                }
             }
 
             if (empty($result[$key])) {

+ 13 - 6
library/Zend/Validate/File/MimeType.php

@@ -228,19 +228,26 @@ class Zend_Validate_File_MimeType extends Zend_Validate_Abstract
 
         if ($file !== null) {
             $mimefile = $this->getMagicFile();
-            if (class_exists('finfo', false) && ((!empty($mimefile)) or (defined('MAGIC')))) {
+            if (class_exists('finfo', false)) {
                 if (!empty($mimefile)) {
                     $mime = new finfo(FILEINFO_MIME, $mimefile);
                 } else {
                     $mime = new finfo(FILEINFO_MIME);
                 }
 
-                $this->_type = $mime->file($value);
+                if ($mime !== false) {
+                    $this->_type = $mime->file($value);
+                }
+
                 unset($mime);
-            } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
-                $this->_type = mime_content_type($value);
-            } else {
-                $this->_type = $file['type'];
+            }
+
+            if (empty($this->_type)) {
+                if (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
+                    $this->_type = mime_content_type($value);
+                } else {
+                    $this->_type = $file['type'];
+                }
             }
         }