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


How to send a xmlhttp request to a php file to upload an image

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

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

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

但是当我在请求的 php 文件中print_r _POST_FILES但函数返回了一个空数组.

我也尝试仅使用 send() 方法执行此操作,但它也不起作用 问题出在哪里

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

要在应用程序中使用 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>