使用XMLHttpRequest通过Ajax上传文件

时间:2017-06-13 20:04:48

标签: php ajax

我一直在努力了解上传图片的问题。尝试了几种方法,但在Ajax中无法成功。如果我不使用Ajax上传文件,它可以正常工作:我是AJAX的新手,所以可能会错过一些技巧。

此外,完整的表单与ajax完美配合,但$ _FILES正在创建一个问题。错误是:

注意:未定义的索引:在第70行的Z:\ xampp \ htdocs \ webseite \ a.php上传

可能是什么原因?

我知道有几篇与此相关的帖子,但没有一篇与XMLHttpRequest匹配。

谢谢

这是代码。

HTML文件包含HTML代码和Javascript / AJAX代码。 第二个文件:a.php有PHP代码。

<div class="form-group  mygroup">
          <label   for="name"> Upload (optional) </label>
          <input type="file" class="form-control" name="Upload" id="Upload">

</div>

 <script>
     var xhttp = new XMLHttpRequest(); 
      var Upload_rek=document.getElementById('Upload').value; 

        xhttp.open('GET', 'a.php?&Upload_var='+Upload_rek+'&Senden_var='+Senden_rek, true);
       xhttp.send();   
 </script>  

<?php
 $target = "uploads/".basename($_FILES['Upload']['name']);
 ?> 

1 个答案:

答案 0 :(得分:2)

您需要使用FormData附加文件

&#xA;&#xA;
  var formData = new FormData();&#xA; formData.append(file,file); &#xA; xhr.send(formData);&#xA;  
&#xA;&#xA;

在您当前的代码状态中,您不会将文件发送/上传到服务器。

&#xA;