无法通过AJAX提交文件

时间:2013-12-27 12:35:13

标签: javascript ajax jquery

以下是我的ajax调用,其中我将表单数据发送到PHP页面并相应地展示消息。我面临的问题是ajax seralize()post我的文件没有发布而send.php在响应Notice: Undefined index: file中给出了错误。请告诉我使用ajax enctype="multipart/form-data"发布表单数据的合适方法是什么,这样也可以通过ajax将文件作为帖子发送。

var post_data = $( "#form" ).serialize();

$.ajax({
            type: "POST",
           url: "send.php",
            async: false,
            data: post_data,
            success: function(html){

              if (html.indexOf("filerror") != -1)
              {
              alert('error');
              }

              else if(html.indexOf("true") != -1)
              {
                alert('true');
              }
              else if (html.indexOf("false") != -1)
              {
                  alert('false');

              }


            },
            beforeSend:function()
            {



            }
        });

1 个答案:

答案 0 :(得分:0)

$( "#form" ).serialize()只获取表单字段值,而不是其内容(用于文件)。如果您希望文件内容适用于files控制字段:

var $fileInput = $('input[type="file"]');
var files = $fileInput.get(0).files;

您必须使用files构造函数处理变量FileReader。但更适合AJAXuse插件上传文件,例如this