通过PHP中的Ajax图像上传[最简单的方式]

时间:2018-03-01 07:53:11

标签: php jquery ajax

我已经在stackOverflow中研究了很多答案,但还没有找到从表单上传图像的最简单方法。我试图找出一种使用Ajax上传图像的方法。虽然表单,PHP和Ajax编码很大,但我给你的重要部分。单击“提交”按钮时,会显示错误消息,即undefined index

HTML

<form method="post" enctype="multipart/form-data">
<tr>
    <th>Image</th>
    <td><input type="file" name="image" id="img"></td>
  </tr>
</form>

Ajax

$(document).on('click','#sub_prod',function(event){
        event.preventDefault();
        $.ajax({
            url:"product_add_back.php",
            method:"post",
            data:$('form').serialize(),
            dataType:"html",
            success:function(strMsg){
                    $("#prod_add").html(strMsg).show().fadeOut(3000);

                }

            })

})

PHP

$image_name=$_FILES["image"]["name"];
echo $image_name;
die();

1 个答案:

答案 0 :(得分:1)

$().serialize()不会包含$_FILES个内容,因此您需要使用FormData object

$(document).on('click','#sub_prod',function(event){
    event.preventDefault();
    var formdata = new FormData($('form')[0]);

    $.ajax({
        url: "product_add_back.php",
        method: "post",

        data: formData,
        processData: false,
        contentType: false,

        success: function(strMsg){}
    });
});

请注意您通过了3个参数:data: formDataprocessData: falsecontentType: false