Quellcode durchsuchen

[ZF-7851] Zend_File:

- fix irritation on counting temporary file before upload, and named file after upload


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@18425 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas vor 16 Jahren
Ursprung
Commit
ec1945614f

+ 8 - 1
library/Zend/File/Transfer/Adapter/Abstract.php

@@ -613,7 +613,14 @@ abstract class Zend_File_Transfer_Adapter_Abstract
             if (array_key_exists('validators', $content) &&
                 in_array('Zend_Validate_File_Count', $content['validators'])) {
                 $validator = $this->_validators['Zend_Validate_File_Count'];
-                $validator->addFile($content['tmp_name']);
+                if (array_key_exists('destination', $content)) {
+                    $checkit = $content['destination'];
+                } else {
+                    $checkit = dirname($content['tmp_name']);
+                }
+
+                $checkit .= DIRECTORY_SEPARATOR . $content['name'];
+                $validator->addFile($checkit);
                 $count = $content;
             }
         }

+ 8 - 0
library/Zend/Validate/File/Count.php

@@ -241,6 +241,14 @@ class Zend_Validate_File_Count extends Zend_Validate_Abstract
      */
     public function isValid($value, $file = null)
     {
+        if (!array_key_exists('destination', $file)) {
+            $file['destination'] = dirname($value);
+        }
+
+        if (array_key_exists('tmp_name', $file)) {
+            $value = $file['destination'] . DIRECTORY_SEPARATOR . $file['name'];
+        }
+
         $this->addFile($value);
         $this->_count = count($this->_files);
         if (($this->_max !== null) && ($this->_count > $this->_max)) {

+ 5 - 4
tests/Zend/File/Transfer/Adapter/AbstractTest.php

@@ -30,6 +30,7 @@ require_once dirname(__FILE__) . '/../../../../TestHelper.php';
 require_once 'Zend/File/Transfer/Adapter/Abstract.php';
 require_once 'Zend/Filter/BaseName.php';
 require_once 'Zend/Filter/StringToLower.php';
+require_once 'Zend/Filter/StringToUpper.php';
 require_once 'Zend/Loader/PluginLoader.php';
 require_once 'Zend/Validate/File/Count.php';
 require_once 'Zend/Validate/File/Extension.php';
@@ -373,7 +374,7 @@ class Zend_File_Transfer_Adapter_AbstractTest extends PHPUnit_Framework_TestCase
 
     public function testAdapterShouldAllowAddingFilterInstance()
     {
-        $filter = new Zend_Filter_StringToLower(1, 1);
+        $filter = new Zend_Filter_StringToLower();
         $this->adapter->addFilter($filter);
         $test = $this->adapter->getFilter('Zend_Filter_StringToLower');
         $this->assertSame($filter, $test);
@@ -381,9 +382,9 @@ class Zend_File_Transfer_Adapter_AbstractTest extends PHPUnit_Framework_TestCase
 
     public function testAdapterShouldAllowAddingFilterViaPluginLoader()
     {
-        $this->adapter->addFilter('StringToUpper');
-        $test = $this->adapter->getFilter('StringToUpper');
-        $this->assertTrue($test instanceof Zend_Filter_StringToUpper);
+        $this->adapter->addFilter('StringTrim');
+        $test = $this->adapter->getFilter('StringTrim');
+        $this->assertTrue($test instanceof Zend_Filter_StringTrim);
     }
 
     /**