Dropzone.js и symfony formbuilder

Я пытаюсь обработать dropzone.js для правильной работы с моей сущностью symfony formbuilder.

Все работает нормально, если я использую простой <input type="file" id="form_file" name="form[file]">

НО, если я использую dropzone.js, я вижу эту разницу в моем POST: разница в POST

Как я справлюсь с этим?

Это мой js для этого:

Dropzone.options.myAwesomeDropzone = { 
                autoProcessQueue: false,
                uploadMultiple: true,
                parallelUploads: 25,
                maxFiles: 25,

                init: function() {
                    var myDropzone = this;

                    $("#submit-all").click(function (e) {
                                e.preventDefault();
                                e.stopPropagation();
                                myDropzone.processQueue();
                            }
                    );

                }

            }

Мой файл формы выглядит так:

    <form id="my-awesome-dropzone" class="wizard-big dropzone" action="{{ path('add') }}" method="post"  {{ form_enctype(form) }}>
    {{ form_widget(form.name, {'attr': { 'class': 'form-control' } }) }}
    <div class="row">
        <div class="dropzone-previews"></div>
        <div class="fallback"> 
         {{ form_widget(form.file, {'attr': { 'class': 'cotam' } }) }}
        </div>
        </div>
<button type="submit" id="submit-all" class="btn">Upload the file</button>
    {{ form_rest(form) }}
    </form>

И мой контроллер:

public function addAction(Request $Request) {

        $photo = new Photo();

        $form = $this->createFormBuilder($photo)
            ->add('name')
            ->add('file')
            ->getForm();

        $form->handleRequest($Request);

        if ($form->isValid() && $Request->isMethod('POST')) {

            $em = $this->getDoctrine()->getManager();

            $em->persist($photo);
            $em->flush();

            $this->redirect($this->generateUrl('add'));
        }



        return $this->render('MyBundle::add.html.twig', array(
            'form' => $form->createView()
        ));
    }

Не могли бы вы помочь мне?


person Gemmi    schedule 12.06.2015    source источник
comment
Вы пробовали установить для uploadMultiple значение false?   -  person Vadim Ashikhman    schedule 13.06.2015
comment
Когда я настраиваю, у меня есть: files] => Symfony\Component\HttpFoundation\FileBag Object ( [parameters:protected] => Array ( [file] => Symfony\Component\HttpFoundation\File\UploadedFile Object .... Но я бы хотел получить [files] => Symfony\Component\HttpFoundation\FileBag Object ( [parameters:protected] => Array [form] => Array ( [file] => Symfony\Component\HttpFoundation\File\UploadedFile Object ....   -  person Gemmi    schedule 13.06.2015
comment
Думаю, нужно как-то связать это с формбилдером, но не знаю как ...   -  person Gemmi    schedule 13.06.2015


Ответы (1)


Хорошо, я нашел ответ ... Это было максимально просто ..

Вам нужно просто добавить опцию:

paramName: "form[file]"

К вашей конфигурации dropzone.

person Gemmi    schedule 13.06.2015