使用ajax和Symfony2上传文件

时间:2015-07-01 08:18:51

标签: php jquery ajax symfony

我遇到了从ajax上传文件到Symfony2控制器的问题。

这是客户方的表格:

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() {

                   }
                });
            }
        }
    ]
});

};

这是我的控制器

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

当我尝试显示上传的文件时,我得到一个空的FileBag对象:

  

对象(Symfony \ Component \ HttpFoundation \ FileBag)#12(1){
  [ “参数”:保护] =&GT; array(0){}}

可能出现什么问题?

编辑: 我解决了它。我添加了jquery ajax参数

  

cache:false,输入:'POST'

一切都好!)

1 个答案:

答案 0 :(得分:0)

添加ajax参数:

.with-gap[type="radio"]:checked+label:after{
   background-color: #ff9800;
   border-color: #ff9800;
} 

解决了问题。

注意:答案是基于评论而非我的,因为它出现在&#34;未答复的&#34;部分。