我在通过 ajax 将文件从表单上传到 Symfony2 Controller 时遇到问题。
这是我在客户端的表单:
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() {
}
});
}
}
]
});
};
这是我的 Controller
public function uploadAttachmentAction(Request $request) {
$fileBag = $request->files;
var_dump($fileBag);
}
当我尝试显示上传的文件时,我得到一个空的 FileBag 对象:
object(Symfony\Component\HttpFoundation\FileBag)#12 (1) {
["parameters":protected]=> array(0) { } }
有什么问题吗?
编辑: 我解决了它。我添加到 jquery ajax 参数
cache: false, type: 'POST'
一切正常:)
最佳答案
添加ajax参数:
cache: false,
type: 'POST'
已解决的问题。
注意:答案基于不是我的评论,因为它显示在“未回答”部分。
关于php - 使用 ajax 和 Symfony2 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156062/