Php FormData为null

时间:2017-10-25 08:32:13

标签: ajax blob form-data

我有一个id为formC的表单,在提交时我调用ajax:

        var datiForm = new FormData();

        var pos = [];
        var i = 0;
        posizioni.each(function () {

            if($(this).find("input[type=checkbox]").is(":checked")){

                pos[i] = $(this).find("input[type=checkbox]").data("id");
                i++;
            }


        });

        datiForm.append("nome",nome.val());
        datiForm.append("cognome",cognome.val());
        datiForm.append("email",email.val());
        datiForm.append("telefono",telefono.val());
        datiForm.append("dataNascita",dataNascita.val());
        datiForm.append("titolo",titolo.val());
        datiForm.append("ruolo",ruolo.find(":selected").data("ruolo"));
        datiForm.append("sede",sede.find(":selected").data("sede"));
        datiForm.append("posizione",pos);
        datiForm.append("cvFile",$("#cvFile")[0].files[0]);

        $.ajax({

            type: "POST",
            data: {datiForm: datiForm},
            url: "saveCandidate.php",
            processData: false,
            contentType: false,
            success: function (data) {

                console.log(data);


            },
            error: function (data) {

                var position = data;


            }


        });

我有问题,在服务器$datiForm = $_POST["datiForm"];上为空为什么? 此外,我有输入文件,我可以选择文件pdf。我把它放在FormData中:

datiForm.append("cvFile",$("#cvFile")[0].files[0]);

现在在服务器上我想从$ datiForm获取文件并将其保存到mysql中,因为Blob是可能的吗?

2 个答案:

答案 0 :(得分:1)

您错误地指定了数据字段,它应该只是表单数据对象

data: datiForm,

你添加posizione的方式不起作用,yrh数组中的每个条目都必须单独添加

    posizioni.each(function () {

        if($(this).find("input[type=checkbox]").is(":checked")){

            datiForm.append("posizione["+i+"]", $(this).find("input[type=checkbox]").data("id"));
            i++;
        }

    });
  

现在在服务器上我想从$ datiForm获取文件并将其保存到mysql中,因为Blob是可能的吗?

答案 1 :(得分:-2)

您需要将'contentType'属性指定为'multipart / form-data'才能上传文件。