2015-06-12 16 views
5

Tôi đang cố gắng xử lý dropzone.js để hoạt động chính xác với trình tạo biểu mẫu symfony thực thể của tôi.Dropzone.js và symfony formbuilder

Tất cả mọi thứ hoạt động đúng nếu tôi đang sử dụng đơn giản <input type="file" id="form_file" name="form[file]">

NHƯNG nếu tôi đang sử dụng dropzone.js tôi nhận được sự khác biệt này trong POST của tôi: difference in POST

Làm thế nào tôi có thể xử lý nó?

Đây là js của tôi cho nó:

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

       } 

      } 

tập tin dạng của tôi trông giống như:

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

Và điều khiển của tôi:

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

Bạn có thể giúp tôi?

+0

Bạn đã thử đặt 'uploadMultiple' thành false? –

+0

Khi tôi cài đặt tôi có: 'files] => Symfony \ Component \ HttpFoundation \ FileBag Object ( [tham số: protected] => Array ( [file] => Symfony \ Component \ HttpFoundation \ File \ UploadedFile Object .... 'Nhưng tôi muốn để có được' [file] => Symfony \ Component \ HttpFoundation \ FileBag Object ( [thông số: protected] => Array \t [hình thức] => Array \t ( \t [file] => Symfony \ Component \ HttpFoundation \ File \ UploadedFile Object \t .... ' – Gemmi

+0

Tôi nghĩ mình cần kết nối nó với formbuilder, nhưng tôi không biết làm thế nào ... – Gemmi

Trả lời

3

Ok Tôi tìm thấy câu trả lời ... Đó là đơn giản càng tốt ..

Bạn cần phải chỉ cần thêm một lựa chọn:

paramName: "form[file]"

Để cấu hình vùng thả của bạn.

Các vấn đề liên quan