[HttpFoundation] Fix FileBag issue with associative arrays

This commit is contained in:
Jáchym Toušek 2017-10-18 17:59:47 +02:00 committed by Fabien Potencier
parent 2fc9b57f65
commit 8ea2860996
2 changed files with 19 additions and 3 deletions

View File

@ -87,7 +87,10 @@ class FileBag extends ParameterBag
$file = new UploadedFile($file['tmp_name'], $file['name'], $file['type'], $file['size'], $file['error']);
}
} else {
$file = array_filter(array_map(array($this, 'convertFileInformation'), $file));
$file = array_map(array($this, 'convertFileInformation'), $file);
if (array_keys($keys) === $keys) {
$file = array_filter($file);
}
}
}

View File

@ -62,7 +62,7 @@ class FileBagTest extends TestCase
public function testShouldRemoveEmptyUploadedFilesForMultiUpload()
{
$bag = new FileBag(array('file' => array(
$bag = new FileBag(array('files' => array(
'name' => array(''),
'type' => array(''),
'tmp_name' => array(''),
@ -70,7 +70,20 @@ class FileBagTest extends TestCase
'size' => array(0),
)));
$this->assertSame(array(), $bag->get('file'));
$this->assertSame(array(), $bag->get('files'));
}
public function testShouldNotRemoveEmptyUploadedFilesForAssociativeArray()
{
$bag = new FileBag(array('files' => array(
'name' => array('file1' => ''),
'type' => array('file1' => ''),
'tmp_name' => array('file1' => ''),
'error' => array('file1' => UPLOAD_ERR_NO_FILE),
'size' => array('file1' => 0),
)));
$this->assertSame(array('file1' => null), $bag->get('files'));
}
public function testShouldConvertUploadedFilesWithPhpBug()