html markup:
<input id="fileSelect" type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
I am uploading multiples files with php. I want to make an array of upload files and send to server with ajax. how to make an array of the multiple selected files?
JavaScript:
jQuery.ajax({
    url: 'insertfiles.php',
    type: "POST",
    data: {
      file: // array of selected files.
    },
    success: function(data){
    },
    error: function(data){
      alert( 'Sorry.' );
    }
});
                Use the code below.
var formData = new FormData($("#formid")[0]);
jQuery.ajax({
  url: 'insertfiles.php',
  type: "POST",
  data: formData,
  success: function(data) {
        
  },
  error: function(data) {
    alert( 'Sorry.' );
  },
  cache: false,
  contentType: false,
  processData: false,
});
Hope this helps you
Modern browsers that support the HTML5 file stuff have in the <input> element a "files" property.
That will give you a file list reference, which has a length property. 
As the property is already an array so you just need to access it or iterate through it.
JS
var input = document.getElementById('id');
console.log(input.files);
for (var i = 0; i < input.files.length; i++) {
 console.log(input.files[i]);
}
                        var formData = new FormData(this);
debugger;
$.ajax({
  url: formURL,
  type: 'POST',
  data: formData,
  mimeType: "multipart/form-data",
  contentType: false,
  cache: false,
  processData: false,
  success: function (data, textStatus, jqXHR) {
    debugger;
  },
  error: function (jqXHR, textStatus, errorThrown) {
                    
  }
});
The above code will help you post content plus files in one submit call.
The post method parameter should include HttpPostedFileBase[] file so the list of files will appear in this file parameter
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With