Javascript 如何通过ajax后序列化上传

Javascript 如何通过ajax后序列化上传,javascript,php,ajax,json,Javascript,Php,Ajax,Json,我已上传表格: <form method="post" id="edit_form" onsubmit="return edit(this.id);" enctype="multipart/form-data"> <input type="file" name="thumb" /> <input type="submit" value="Upload" /> </form> 在php中,我检查: if ($_FILES['thu

我已上传表格:

 <form method="post" id="edit_form" onsubmit="return edit(this.id);" enctype="multipart/form-data">
    <input type="file" name="thumb" />
    <input type="submit" value="Upload" />
</form>
在php中,我检查:

if ($_FILES['thumb']['error'] != UPLOAD_ERR_NO_FILE) {
    code upload here...
}

但是表单为空
$\u文件['thumb']
null
。对不起,我说的是英语。

您不需要序列化表单。相反,您应该发送
FormData
类的实例

        $("form").submit(function(event) {
            event.preventDefault();

            var data = new FormData($(this)[0]);

            $.ajax({
                // Note: to access both $_POST and $_FILES you should set these to false
                processData : false,
                contentType : false,

                url : "/php-script.php",
                data : data,
                success : function(response){
                    console.log(response);
                }
            });
        });
这是使用jquery通过AJAX发送文件的一种非常常见的技术

        $("form").submit(function(event) {
            event.preventDefault();

            var data = new FormData($(this)[0]);

            $.ajax({
                // Note: to access both $_POST and $_FILES you should set these to false
                processData : false,
                contentType : false,

                url : "/php-script.php",
                data : data,
                success : function(response){
                    console.log(response);
                }
            });
        });