Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用ajax和Symfony2上传文件_Php_Jquery_Ajax_Symfony - Fatal编程技术网

Php 使用ajax和Symfony2上传文件

Php 使用ajax和Symfony2上传文件,php,jquery,ajax,symfony,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>"; $("

我无法通过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() {

                   }
                });
            }
        }
    ]
});
当我试图显示上传的文件时,我得到一个空文件包对象:

对象(Symfony\Component\HttpFoundation\FileBag)#12(1){
[“参数”:受保护]=>数组(0){}

有什么不对劲吗

编辑: 我解决了这个问题,在jquery中添加了ajax参数

缓存:false,键入:“POST”


一切正常:)

添加ajax参数:

cache: false,
type: 'POST'
解决了这个问题


注意:答案基于注释而非我的注释,因为它显示在“未答复”部分。

您是否尝试记录
document.getElementById('file').files[0]的值。
?是的,看起来不错。我解决了这个问题。我向ajax参数中添加了:cache:false并键入:“POST”。现在一切都好了:)我正在尝试类似的方法,但通过验证表单,以确保数据的完整性,可以帮助我吗@请回答你自己的问题,或者删除它。它仍然出现在“未答复”部分。谢谢
cache: false,
type: 'POST'