From c481e7404faf93beb4c67a6a4b7490fec15d279b Mon Sep 17 00:00:00 2001 From: rafam31 Date: Wed, 18 Feb 2015 12:12:45 -0200 Subject: [PATCH] Fixing fileprg working with file collections (issue #6483) --- .../Controller/Plugin/FilePostRedirectGet.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php b/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php index df54816bc75..8716333a9a7 100644 --- a/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php +++ b/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php @@ -217,8 +217,18 @@ protected function traverseInputs(InputFilterInterface $inputFilter, $values, $c } $input = $inputFilter->get($name); - if ($input instanceof InputFilterInterface && is_array($value)) { - $retVal = $this->traverseInputs($input, $value, $callback); + if ($input instanceof InputFilterInterface && is_array($value)) { + + if ($input instanceof \Zend\InputFilter\CollectionInputFilter) { + $retVal = null; + foreach ($value as $k => $val) { + $retVal2 = $this->traverseInputs($input->getInputFilter(), $val, $callback); + if ($retVal2) + $retVal[$k] = $retVal2; + } + } else + $retVal = $this->traverseInputs($input, $value, $callback); + if (null !== $retVal) { $returnValues[$name] = $retVal; } @@ -248,7 +258,7 @@ protected function getNonEmptyUploadData(InputFilterInterface $inputFilter, $dat function ($input, $value) { $messages = $input->getMessages(); if (is_array($value) && $input instanceof FileInput && empty($messages)) { - $rawValue = $input->getRawValue(); + $rawValue = $value; if ( (isset($rawValue['error']) && $rawValue['error'] !== UPLOAD_ERR_NO_FILE) || (isset($rawValue[0]['error']) && $rawValue[0]['error'] !== UPLOAD_ERR_NO_FILE)