Avertissement: Limite manquante dans les données POST de données multiparties / formes dans Unknown en ligne 0

Je travaille sur le chargement des fichiers qui téléchargent l'image lorsque l'entrée est modifiée Mon code pour le formulaire dans html est

<form method="post" enctype="multipart/form-data"> <input name="uploaded[]" type="file" id="file_upload"/> </form> 

Mon JavaScript et Ajax:

  document.getElementById("file_upload").onchange = function() { var id = document.getElementById("user_id").innerHTML; var file = document.getElementById("file_upload").files[0]; alert(file.size); var formdata = new FormData(); formdata.append("filer",file,true); var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function(){ if(ajax.readyState==4 && ajax.status==200){ document.getElementById("one").remove(); var img = document.createElement('img'); var first_path = '/user_image/'; var path = first_path.concat(id,'.png'); img.setAttribute('alt','User image'); img.setAttribute('id','one'); img.setAttribute('src',path); document.getElementById("user").appendChild(img); alert("end"); } else{ document.getElementById("one").remove(); var img = document.createElement('img'); img.setAttribute('src','/img/loading.gif'); img.setAttribute('alt','User image'); img.setAttribute('id','one'); document.getElementById("user").appendChild(img); } } ajax.open("POST","upload_image.php"); ajax.setRequestHeader("Content-Type", "multipart/form-data"); ajax.send(formdata); }; 

Et mon code php est simple, c'est juste de tester si tout va bien

 require("../includes/config.php"); //config folder to start the session if($_SERVER["REQUEST_METHOD"]=="POST"){ echo '<pre>',print_r($_FILES),'</pre>'; //dumping some variable and arrays to see where the problem is } 

La demande que je reçois du serveur est Warning: Missing boundary in multipart / form-data POST data in Unknown on line 0 mais j'ai envoyé les formdata et l'en-tête de demande et j'ai ouvert le fichier.

Vous devez simplement supprimer la ligne suivante:

ajax.setRequestHeader("Content-Type", "multipart/form-data");

Au lieu d'envoyer les données en tant que multipart/form-data :

 ajax.setRequestHeader("Content-Type", "multipart/form-data"); 

Vous devriez l'envoyer comme application/json :

 ajax.setRequestHeader("Content-Type", "application/json");