2015-06-12 11 views
5

Ich versuche, dropzone.js mit meiner Einheit Symfony Formbuilder korrekt arbeiten zu arbeiten.Dropzone.js und symfony formbuilder

Alles funktioniert einwandfrei, wenn ich einfach <input type="file" id="form_file" name="form[file]">

mit bin, aber wenn ich dropzone.js bin mit bekomme ich diesen Unterschied in meinem POST: difference in POST

Wie ich damit umgehen kann?

Das ist mein js für sie:

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

       } 

      } 

Meine Form-Datei wie folgt aussieht:

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

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

Können Sie mir helfen?

+0

Haben Sie versucht, 'uploadMultiple' auf false zu setzen? –

+0

Wenn ich i aufgebaut habe ich: 'Dateien] => Symfony \ Component \ HttpFoundation \ FileBag Objekt ( [Parameter: protected] => Array ( [file] => Symfony \ Component \ HttpFoundation \ File \ UploadedFile Objekt .... 'Aber ich möchte' bekommen [Dateien] => Symfony \ Component \ HttpFoundation \ FileBag Objekt ( [Parameter: protected] => Array \t [form] => Array \t ( \t [Datei] => Symfony \ Component \ HttpFoundation \ Datei \ UploadedFile Objekt \t .... ' – Gemmi

+0

Ich denke, ich muss es irgendwie verbinden mit dem Formbauer, aber ich weiß nicht wie ... – Gemmi

Antwort

3

Ok fand ich die Antwort ... Es war einfach wie möglich ..

Sie müssen nur eine Option hinzufügen:

paramName: "form[file]"

Um Ihre Konfiguration Dropzone.