php - 使用 ajax 和 Symfony2 上传文件

标签 php jquery ajax symfony

我在通过 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/

相关文章:

php - 如何判断ob_start();已经被调用

javascript - 滚动时使 Div "catch"位于页面顶部

javascript - 如何捕获输入到 Jquery 中的变量

php - 使用 php ajax jquery 在表中显示输入框的结果

java - ajax成功函数出错

php - 带有 php 的动态导航栏工作正常但是当尝试使用 foreach 获取错误输入子菜单时

php - 从其他函数返回的 mysql_query 不起作用?

java - 通过ajax发布表单并在play framework java中获取表单对象

javascript - 使页面滚动高于窗口底部

php - 注意:数组到字符串的转换 - 为什么?