Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dropzone.js and symfony formbuilder

I'm trying to handle dropzone.js to work correct with my entity symfony formbuilder.

Everything works properly if I'm using simple <input type="file" id="form_file" name="form[file]">

BUT if I'm using dropzone.js I get this difference in my POST: difference in POST

How I can handle it?

This is my js for it:

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();
                            }
                    );

                }

            }

My form file looks like:

    <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>

And my controller:

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()
        ));
    }

Could You help me?

like image 913
Gemmi Avatar asked Jun 12 '15 23:06

Gemmi


1 Answers

Ok I found the answer... It was simple as possible..

You need to just add a option:

paramName: "form[file]"

To Your dropzone configuration.

like image 134
Gemmi Avatar answered Sep 21 '22 17:09

Gemmi