Php message Warning: There is no border in the POST data for multipart / form data data in Unknown on line 0

This is my javascript

function ajax_post(){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create some variables we need to send to our PHP file var url = "LiveUpdate.php"; var sb = document.getElementById("LiveUpdate").value; var FirstName = document.getElementById("FirstName").value; var images = document.getElementById("images").value; var vars = "update="+sb+"&FirstName="+FirstName+"&images="+images; hr.open("POST", url, true); // Set content type header information for sending url encoded variables in the request hr.setRequestHeader("Content-type", "multipart/form-data"); // Access the onreadystatechange event for the XMLHttpRequest object hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; document.getElementById("message").innerHTML = return_data; } } // Send the data to PHP now... and wait for response to update the status div var formData = new FormData(document.querySelector("form")); hr.send(formData); // Actually execute the request // Actually execute the request document.getElementById("message").innerHTML = "processing..."; } //show image before uploading var loadFile = function(event) { var output = document.getElementById('output'); output.src = URL.createObjectURL(event.target.files[0]); };//end image 

and this is the form. javascript and form are in the same file. file name sample.php

 <form action="popup.php" method="post" id="myForm" name="myForm" enctype="multipart/form-data"> <div id="message"></div> <img src="" id="output" /> <input type="file" class="filestyle" data-buttonBefore="true" accept=".png, .jpg, .jpeg" onchange="loadFile(event)" name="images" id="images"> <input class="form-control" type="text" placeholder="First Name" name="FirstName" id="FirstName" value=""> <a href="#" class="btn btn-success" role="button" name="update" id="LiveUpdate" onclick="javascript:ajax_post();">Update</a> </form> 

There is an idea in this code. I want to insert basic information such as FirstName and Image into the database, without refreshing the page. the reason I choose the tag to send ajax. why is the URL of the account.php page? Edit = 1 will not change to Account.php, because if it changes to account.php, the pop-up editing mode will be close. The problem is in this code. I do not know how to fix the Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0 error can someone help me how to fix this. thanks!

+5
source share
1 answer

The browser sets the correct headers (including the correct indication of the multi-line border in the Content-type) if you did not specify anything manually.

So, all you have to do is delete the following line:

  hr.setRequestHeader("Content-type", "multipart/form-data"); 

Otherwise, you will need to set the border yourself, as suggested by Ellias Van Ootegem in Uploading a file with XMLHttprequest - There is no border in multipart / form-data :

 hr.setRequestHeader("Content-type","multipart/form-data; charset=utf-8; boundary=" + Math.random().toString().substr(2)); 
+5
source

Source: https://habr.com/ru/post/1259624/


All Articles