2015-06-12 11 views
5

Sto cercando di gestire dropzone.js per funzionare correttamente con il mio formbuilder symfony dell'entità.Dropzone.js e symfony formbuilder

Tutto funziona correttamente se sto utilizzando semplici <input type="file" id="form_file" name="form[file]">

MA se sto usando dropzone.js ottengo questa differenza nel mio post: difference in POST

Come posso gestire la cosa?

Questo è il mio js per esso:

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

       } 

      } 

Il mio file forma assomiglia:

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

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

mi può aiutare?

+0

Hai provato a impostare "uploadMultiple" su false? –

+0

Quando ho creato io fino ho: 'file] => Symfony \ Component \ HttpFoundation \ FileBag oggetto ( [parametri: protected] => Array ( [file] => Symfony \ Component \ HttpFoundation \ File \ UploadedFile oggetto .... 'Ma mi piacerebbe avere' [file] => Symfony \ Component \ HttpFoundation \ FileBag oggetto ( [parametri: protected] => Array \t [forma] => Array \t ( \t [file] => Symfony \ Component \ HttpFoundation \ File \ UploadedFile Object \t .... ' – Gemmi

+0

Penso di aver bisogno di collegarlo con il formbuilder, ma non so come ... – Gemmi

risposta

3

Ok ho trovato la risposta ... E 'stato semplice possibile ..

è necessario aggiungere solo un'opzione:

paramName: "form[file]"

alla configurazione dropzone.

Problemi correlati