Browse Source

[GENERIC] Zend_Validate_File:

- fixed MimeType and dependent validators to work standalone

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@17963 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 years ago
parent
commit
aab6744dce

+ 15 - 10
library/Zend/Validate/File/ExcludeMimeType.php

@@ -51,22 +51,27 @@ class Zend_Validate_File_ExcludeMimeType extends Zend_Validate_File_MimeType
      */
     public function isValid($value, $file = null)
     {
+        if ($file === null) {
+            $file = array(
+                'type' => null,
+                'name' => $value
+            );
+        }
+
         // Is file readable ?
         require_once 'Zend/Loader.php';
         if (!Zend_Loader::isReadable($value)) {
             return $this->_throw($file, self::NOT_READABLE);
         }
 
-        if ($file !== null) {
-            if (class_exists('finfo', false) && defined('MAGIC')) {
-                $mime = new finfo(FILEINFO_MIME);
-                $this->_type = $mime->file($value);
-                unset($mime);
-            } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
-                $this->_type = mime_content_type($value);
-            } elseif ($this->_headerCheck) {
-                $this->_type = $file['type'];
-            }
+        if (class_exists('finfo', false) && defined('MAGIC')) {
+            $mime = new finfo(FILEINFO_MIME);
+            $this->_type = $mime->file($value);
+            unset($mime);
+        } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
+            $this->_type = mime_content_type($value);
+        } elseif ($this->_headerCheck) {
+            $this->_type = $file['type'];
         }
 
         if (empty($this->_type)) {

+ 15 - 10
library/Zend/Validate/File/IsCompressed.php

@@ -93,22 +93,27 @@ class Zend_Validate_File_IsCompressed extends Zend_Validate_File_MimeType
      */
     public function isValid($value, $file = null)
     {
+        if ($file === null) {
+            $file = array(
+                'type' => null,
+                'name' => $value
+            );
+        }
+
         // Is file readable ?
         require_once 'Zend/Loader.php';
         if (!Zend_Loader::isReadable($value)) {
             return $this->_throw($file, self::NOT_READABLE);
         }
 
-        if ($file !== null) {
-            if (class_exists('finfo', false) && defined('MAGIC')) {
-                $mime = new finfo(FILEINFO_MIME);
-                $this->_type = $mime->file($value);
-                unset($mime);
-            } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
-                $this->_type = mime_content_type($value);
-            } elseif ($this->_headerCheck) {
-                $this->_type = $file['type'];
-            }
+        if (class_exists('finfo', false) && defined('MAGIC')) {
+            $mime = new finfo(FILEINFO_MIME);
+            $this->_type = $mime->file($value);
+            unset($mime);
+        } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
+            $this->_type = mime_content_type($value);
+        } elseif ($this->_headerCheck) {
+            $this->_type = $file['type'];
         }
 
         if (empty($this->_type)) {

+ 15 - 10
library/Zend/Validate/File/IsImage.php

@@ -97,22 +97,27 @@ class Zend_Validate_File_IsImage extends Zend_Validate_File_MimeType
      */
     public function isValid($value, $file = null)
     {
+        if ($file === null) {
+            $file = array(
+                'type' => null,
+                'name' => $value
+            );
+        }
+
         // Is file readable ?
         require_once 'Zend/Loader.php';
         if (!Zend_Loader::isReadable($value)) {
             return $this->_throw($file, self::NOT_READABLE);
         }
 
-        if ($file !== null) {
-            if (class_exists('finfo', false) && defined('MAGIC')) {
-                $mime = new finfo(FILEINFO_MIME);
-                $this->_type = $mime->file($value);
-                unset($mime);
-            } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
-                $this->_type = mime_content_type($value);
-            } elseif ($this->_headerCheck) {
-                $this->_type = $file['type'];
-            }
+        if (class_exists('finfo', false) && defined('MAGIC')) {
+            $mime = new finfo(FILEINFO_MIME);
+            $this->_type = $mime->file($value);
+            unset($mime);
+        } elseif (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
+            $this->_type = mime_content_type($value);
+        } elseif ($this->_headerCheck) {
+            $this->_type = $file['type'];
         }
 
         if (empty($this->_type)) {

+ 26 - 25
library/Zend/Validate/File/MimeType.php

@@ -254,35 +254,39 @@ class Zend_Validate_File_MimeType extends Zend_Validate_Abstract
      */
     public function isValid($value, $file = null)
     {
+        if ($file === null) {
+            $file = array(
+                'type' => null,
+                'name' => $value
+            );
+        }
+
         // Is file readable ?
         require_once 'Zend/Loader.php';
         if (!Zend_Loader::isReadable($value)) {
             return $this->_throw($file, self::NOT_READABLE);
         }
 
-        if ($file !== null) {
-            $mimefile = $this->getMagicFile();
-            if (class_exists('finfo', false)) {
-                $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
-                if (!empty($mimefile)) {
-                    $mime = new finfo($const, $mimefile);
-                } else {
-                    $mime = new finfo($const);
-                }
-
-                if ($mime !== false) {
-                    $this->_type = $mime->file($value);
-                }
-
-                unset($mime);
+        $mimefile = $this->getMagicFile();
+        if (class_exists('finfo', false)) {
+            $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
+            if (!empty($mimefile)) {
+                $mime = new finfo($const, $mimefile);
+            } else {
+                $mime = new finfo($const);
+            }
+
+            if ($mime !== false) {
+                $this->_type = $mime->file($value);
             }
+            unset($mime);
+        }
 
-            if (empty($this->_type)) {
-                if (function_exists('mime_content_type') && ini_get('mime_magic.magicfile')) {
-                    $this->_type = mime_content_type($value);
-                } elseif ($this->_headerCheck) {
-                    $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);
+            } elseif ($this->_headerCheck) {
+                $this->_type = $file['type'];
             }
         }
 
@@ -315,10 +319,7 @@ class Zend_Validate_File_MimeType extends Zend_Validate_Abstract
      */
     protected function _throw($file, $errorType)
     {
-        if ($file !== null) {
-            $this->_value = $file['name'];
-        }
-
+        $this->_value = $file['name'];
         $this->_error($errorType);
         return false;
     }