2015-07-01 15 views
6

Ajax tarafından Symfony2 denetleyicisinden forma dosya yükleme ile ilgili bir sorun yaşadım.ajax ve Symfony2 ile dosya yükleme

Bu istemci tarafında benim şeklidir:

var uploadFile = function() { 
var content = "<form id='uploadFile' enctype='multipart/form-data' action='' method='post'>" + 
     "<input id='file' type='file'/>" + 
     "</form>"; 
$("#upload-dialog").html(content); 
$("#upload-dialog").dialog({ 
    resizable: false, 
    title: 'Dodaj załączniki do umowy', 
    height: 300, 
    width: 450, 
    buttons: [ 
     { 
      text: 'Wyślij', 
      click: function() { 
       var formData = new FormData(); 
       formData.append('file', document.getElementById('file').files[0]); 
       $.ajax({ 
        url: Routing.generate('employees_upload_attachment'), 
        data: formData, 
        enctype: 'multipart/form-data', 
        processData: false, 
        contentType: false, 
        success: function() { 
        }, 
        error: function() { 

        } 
       }); 
      } 
     } 
    ] 
}); 

};

ve ben boş FileBag nesne olsun Yüklenen dosyayı göstermek için çalıştığınızda bu benim denetleyicisi

public function uploadAttachmentAction(Request $request) { 
    $fileBag = $request->files; 
    var_dump($fileBag); 
} 

geçerli:

nesne (Symfony \ Component \ HttpFoundation \ FileBag) # 12 (1 {
[ "parametreleri": korumalı] => array (0) {}})

ne yanlış olabilir?

DÜZENLEME: false, türü: Ben it.I jquery ajax parametrelerine

önbellek eklendi çözüldü 'POST'

ve herşey yolunda :)

+0

"document.getElementById ('file'). Files [0]' değerini kaydetmeyi denediniz mi? – colinD

+0

Evet, iyi görünüyor. – math

+0

Bu sorunu çözdüm. Ajax paramaterine ekledim: cache: false ve type: 'POST'. Şimdi her şey yolunda değil :) – math

cevap

0

ekleme ajax olduğunu paramatörler: ( )

Not: Yanıt, "yanıtsız" bölümünde görünmekte olduğundan, benimkilendirmeme dayanmaktadır.