From 35639824e864ed8d4a4cc0d8360f2c73ae08b507 Mon Sep 17 00:00:00 2001 From: Bilal Amarni Date: Fri, 7 Jun 2013 16:12:58 +0200 Subject: [PATCH 1/2] [Form] added an option for multiple files upload (closes #1400) --- .../Form/Extension/Core/Type/FileType.php | 6 ++++++ .../Extension/Core/Type/FileTypeTest.php | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/FileType.php b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php index 2c09da6f6b6cf..26dd9f13bb448 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/FileType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php @@ -23,6 +23,11 @@ class FileType extends AbstractType */ public function buildView(FormView $view, FormInterface $form, array $options) { + if ($options['multiple']) { + $view->vars['full_name'] .= '[]'; + $view->vars['attr']['multiple'] = 'multiple'; + } + $view->vars = array_replace($view->vars, array( 'type' => 'file', 'value' => '', @@ -48,6 +53,7 @@ public function setDefaultOptions(OptionsResolverInterface $resolver) 'compound' => false, 'data_class' => 'Symfony\Component\HttpFoundation\File\File', 'empty_data' => null, + 'multiple' => false, )); } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php index 63556eb5a63fd..0227af4f23081 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php @@ -44,6 +44,25 @@ public function testSubmitEmpty() $this->assertNull($form->getData()); } + public function testSubmitMultiple() + { + $form = $this->factory->createBuilder('file', null, array( + 'multiple' => true + ))->getForm(); + + $data = array( + $this->createUploadedFileMock('abcdef', 'first.jpg', true), + $this->createUploadedFileMock('zyxwvu', 'second.jpg', true), + ); + + $form->submit($data); + $this->assertSame($data, $form->getData()); + + $view = $form->createView(); + $this->assertSame('file[]', $view->vars['full_name']); + $this->assertArrayHasKey('multiple', $view->vars['attr']); + } + public function testDontPassValueToView() { $form = $this->factory->create('file'); From 2a9bb83543708ec43c013fbc01571ec3cf7174ac Mon Sep 17 00:00:00 2001 From: Bilal Amarni Date: Tue, 17 Dec 2013 12:55:16 +0100 Subject: [PATCH 2/2] Update CHANGELOG.md --- src/Symfony/Component/Form/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Component/Form/CHANGELOG.md b/src/Symfony/Component/Form/CHANGELOG.md index a696c7be9a9c8..0c0035810d30c 100644 --- a/src/Symfony/Component/Form/CHANGELOG.md +++ b/src/Symfony/Component/Form/CHANGELOG.md @@ -1,6 +1,10 @@ CHANGELOG ========= +2.5.0 +------ + +* added an option for multiple files upload 2.3.0 ------ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy