Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向php文件发送xmlhttp请求以上载图像_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如何向php文件发送xmlhttp请求以上载图像

Javascript 如何向php文件发送xmlhttp请求以上载图像,javascript,php,ajax,Javascript,Php,Ajax,我试图制作一个ajax图像上传程序,我想知道如何通过xmlHttpRequest发送图像 首先,我尝试使用FormData对象发送 var formdata = new FormData(); formdata.append('file',fileInput.files[0]); 但是当我在请求的php文件中打印到\u POST和\u FILES时,函数返回了一个空数组 我也尝试过只使用send()方法,但它也不起作用,问题出在哪里 注意:我没有忘记setHeader中的“multipart/

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

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

var formdata = new FormData();
formdata.append('file',fileInput.files[0]);
但是当我在请求的php文件中打印到
\u POST
\u 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接口实例,并将带有附加文件的file元素添加到其中。使用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>

var client=new XMLHttpRequest();
函数上传()
{
var file=document.getElementById(“上传文件”);
/*创建一个FormData实例*/
var formData=new formData();
/*添加文件*/
formData.append(“上传”,file.files[0]);
client.open(“post”、“/upload”、true);
setRequestHeader(“内容类型”、“多部分/表单数据”);
client.send(formData);/*发送到服务器*/
}
/*检查响应状态*/
client.onreadystatechange=函数()
{
if(client.readyState==4&&client.status==200)
{
console.log(client.statusText);
}
}

你能粘贴你的AJAX调用吗?不要设置
多部分/表单数据
标题并传递表单数据以发送()@SofianeSadi我正在使用个性化函数如果你需要,我将使用函数更新我的问题它将很好@Abdessalem