diff --git a/Form/Type/FileUploadType.php b/Form/Type/FileUploadType.php index d8a52259a07bbb1fe7a16074ba1c96b8c50ccf59..21243424a606fd5adc52dedaf7c59c99f06bd976 100644 --- a/Form/Type/FileUploadType.php +++ b/Form/Type/FileUploadType.php @@ -10,7 +10,9 @@ namespace Irstea\FileUploadBundle\Form\Type; use Irstea\FileUploadBundle\Controller\UploadController; use Irstea\FileUploadBundle\Form\DataTranformer\UploadedFileTransformer; use Irstea\FileUploadBundle\Service\FileManagerInterface; +use Symfony\Bridge\Doctrine\Form\DataTransformer\CollectionToArrayTransformer; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\EventListener\MergeCollectionListener; use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; @@ -58,6 +60,12 @@ class FileUploadType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options) { $builder->setCompound(false); + + if($options['multiple']) { + $builder->addEventSubscriber(new MergeCollectionListener(true, true)); + $builder->addViewTransformer(new CollectionToArrayTransformer()); + } + $builder->addViewTransformer(new UploadedFileTransformer($this->fileManager, $options['multiple'])); } @@ -76,6 +84,7 @@ class FileUploadType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $this->setWidgetDefaultOptions($resolver); + $resolver->setDefaults(['max_chunk_size' => $this->maxChunkSize ?: 0]); $resolver->setAllowedTypes(['max_chunk_size' => 'int']); }