var files = document.getElementById('myfiles').files var eav = {}; console.log(files.length + " Files") for(var i = 0; i < files.length; i++){ var c = { name : files[i].name, size : files[i].size, type : files[i].type ? files[i].type : 'application/octet-stream', binary : files[i] } eav[files[i].name] = c; } console.log(eav) var content = bSerialize.eav2bin(eav); var xhr = new XMLHttpRequest(); xhr.open('POST','pl/upload.pl'); xhr.onload = function(){ console.log("response:"); console.log( this.response ); }; var progressBar = document.querySelector('progress'); xhr.upload.onprogress = function(e) { console.log(e); if (e.lengthComputable) { progressBar.value = (e.loaded / e.total) * 100; } }; xhr.send( content ); console.log("content:"); console.log(content);