Files, as a rule, are data, like binary or anything at all, it cannot simply be sent as a query string and concatenation to a string.
To upload files using ajax, you must use a FormData object , which is only supported with IE10 and higher, for older ajax upload isn browsers it is possible, and workarounds with iframes, etc. must be implanted
function AddMultipleContact() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } var url = "url.php"; var group = document.getElementById("select-input").value; var files = document.getElementById('file-name').files; var formData = new FormData(); for (var i = 0; i < files.length; i++) { var file = files[i]; formData.append('files[]', file, file.name); } formData.append('select_input', group); xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { var data = xmlhttp.responseText; document.getElementById("flash-message").innerHTML = data; } } xmlhttp.send(formData); }
source share