Ajax POST文件上传

时间:2014-08-21 23:06:34

标签: javascript php ajax

我认为这是一项非常简单的任务,但我似乎无法正常工作。我希望有更好理解Ajax的人可以帮我弄清楚我哪里出错了。

我的页面上有一个简单的输入框......

<form onchange="imgUpload();" >
    File: <input id='img' name="myfile" type="file" />
</form>

这是它所称的功能......

function imgUpload(){


    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            // document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
            alert(xmlhttp.responseText);
        }
    }

    var imgFile = document.getElementById("img");
    var formData = new FormData();                  // Create a FormData instance
    formData.append("upload", imgFile.files[0]);        //Add the file

    xmlhttp.open("POST","img_upload.php",true);
    xmlhttp.setRequestHeader("Content-type","multipart/form-data");
    xmlhttp.send(formData);     
}

我的用于处理POST的PHP页面目前不做任何事情,然后回显帖子的数组...

<?php
    print_r($_POST);
    exit;
?>

我的问题是,当我收到POST的结果时,它是一个空数组。显然我实际上并没有将文件发送到我的处理页面。任何有关我出错的地方都会受到高度赞赏。

我在这个论坛上发现了其他几个帖子,其他人谈论同一个问题或主题,但他们似乎无法让我到达我需要的位置。

提前致谢!

0 个答案:

没有答案