Mam problem z przesłaniem pliku z formularza do kontrolera Symfony2 przez ajax.Przesyłanie plików za pomocą ajax i Symfony2
To moja forma od strony klienta:
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() {
}
});
}
}
]
});
};
i to jest mój kontroler
public function uploadAttachmentAction(Request $request) {
$fileBag = $request->files;
var_dump($fileBag);
}
Kiedy próbuję pokazać dodany plik dostaję pustą FileBag obiektu:
obiekt (Symfony \ Komponent \ HttpFoundation \ FileBag) # 12 (1) {
[ "parametry": protected] => array (0) {}}
co może być źle?
EDIT: Rozwiązałem it.I dodany do parametrów jquery ajax
cache: false, typu: 'POST'
i wszystko jest ok :)
Czy próbowałeś zalogować się wartości 'document.getElementById ('file'). Files [0]'? – colinD
Tak, wygląda dobrze. – math
Rozwiązałem ten problem. Dodałem do parametrów ajax: cache: false i type: 'POST'. Teraz wszystko jest w porządku :) – math