multipart / form-data不在此ajax标头中

时间:2014-01-28 08:49:20

标签: php ajax forms header form-submit

 <script type='text/javascript'>
   $(document).ready(function(){
    $('#send_message').click(function(e){

        var email = $('#email').val();   

        if(fname.length == 0){
            var error = true;
            $('#fname_error').fadeIn(500);
        }else{
            $('#fname_error').fadeOut(500);
        }

        if(error == false){
           $('#send_message').attr({'disabled' : 'true', 'value' : 'Sending...' });

          $.post("sub_register.php", $("#contact_form").serialize(),function(result){
               if(result == 'sent'){
                    $('#cf_submit_p').remove();

                    $('#mail_success').fadeIn(500);
                }else{
                    //show the mail failed div
                    $('#mail_fail').fadeIn(500);
                    //reenable the submit button by removing attribute disabled and change the text back to Send The Message
                    $('#send_message').removeAttr('disabled').attr('value', 'Send The Message');
                }
            });
        }
    });    
});

这是我表单的标题。 我正在使用此表单中的文件上传。每个其他表单元素数据都将转到我的提交页面,但上传的文件名除外。当我从我的页面中删除此脚本并使用简单的表单提交时,使用php,然后发送上传的文件名。

如何在此ajax标头中发送'multipart / form-data'。

提前致谢

1 个答案:

答案 0 :(得分:0)

您无法通过$ .post上传文件。相反,您可以使用Jquery Form plugin

这样,您的代码将显示为:

    $("#contact_form").ajaxForm(function() { 
    if(result == 'sent'){
                $('#cf_submit_p').remove();

                $('#mail_success').fadeIn(500);
            }else{
                //show the mail failed div
                $('#mail_fail').fadeIn(500);
                $('#send_message').removeAttr('disabled').attr('value', 'Send The Message');
            }
        });