如何将xmlhttp请求发送到php文件以上传图像

时间:2015-03-11 13:46:52

标签: javascript php ajax

我试图制作一个ajax图像上传器我想知道如何通过xmlHttpRequest发送图像。

首先,我尝试使用FormData对象发送

var formdata = new FormData();
formdata.append('file',fileInput.files[0]);

但是当我在print_r_POST请求的php文件中_FILES时,该函数返回一个空数组。

我也尝试过只使用send()方法,但它也无法解决问题

注意:我没有忘记setHeader中的"multipart/form-data"

1 个答案:

答案 0 :(得分:-1)

要在应用程序中使用XML HTTP请求功能,您必须学习使用Ajax在后台上传文件

1)定义文件上传的输入元素。单击按钮时,使用按钮单击事件的upload()方法上载文件。

 <input type="file" id="uploadfile" name="uploadfile" />
 <input type="button" value="upload" onclick="upload()" />

2)在upload()方法中,创建一个FormData接口实例,并将带有附加文件的文件元素添加到其中。使用send()方法将FormData发送到服务器。

  <script>
     var client = new XMLHttpRequest();

     function upload() 
     {
        var file = document.getElementById("uploadfile");

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

        client.open("post", "/upload", true);
        client.setRequestHeader("Content-Type", "multipart/form-data");
        client.send(formData);  /* Send to server */ 
     }

     /* Check the response status */  
     client.onreadystatechange = function() 
     {
        if (client.readyState == 4 && client.status == 200) 
        {
           console.log(client.statusText);
        }
     }
  </script>