Ajax表单提交附件

时间:2015-07-11 10:16:47

标签: ajax phpmailer

我在我的网站上有一个表格提交了真正的ajax。此表单有一个附加.pdf文件的字段。如何通过文件提交表单不与其余数据一起发送。

我怎样才能让它发挥作用? 这是我的ajax代码:

$('#submit_btn').click(function () {
                $.ajax({
                    type: 'POST',
                    url: '/contact.php',
                    dataType: "json",
                    data: $('#contactform').serialize(),
                    success: function (data) {

                        console.log(data.type);
                        console.log(data.msg);

                        var nClass = data.type;
                        var nTxt = data.msg;

                        $("#notice").attr('class', 'alert alert-' + nClass).text(nTxt).remove('hidden');
                        //reset fields if success
                        if (nClass != 'danger') {
                            $('#contactform input').val('');
                            $('#contactform textarea').val('');
                        }

                    }
                });
                return false;
            });

在php方面,我有phpmailer设置,我正在处理文件:

if(!empty($_FILES['file'])) {
            $_m->addAttachment($_FILES['file']['tmp_name'],$_FILES['file']['name']); 
        }  

1 个答案:

答案 0 :(得分:0)

        $('#submit_btn').click(function () {
                    var formData = new FormData($('#contactform'));
                        $.ajax({
                            type: 'POST',
                            url: '/contact.php',
                           // dataType: "json",
                            data: formData ,
                      processData: false,
                        contentType: false,
                            success: function (data) {

                                console.log(data.type);
                                console.log(data.msg);

                                var nClass = data.type;
                                var nTxt = data.msg;

                                $("#notice").attr('class', 'alert alert-' + nClass).text(nTxt).remove('hidden');
                                //reset fields if success
                                if (nClass != 'danger') {
                                    $('#contactform input').val('');
                                    $('#contactform textarea').val('');
                                }

                            }
                        });
                        return false;
                    });