примерно так.
function getFilesFromGalery() {
return new Promise(resolve=>{
var files = [];
var _i = 0, length = document.getElementById('gallery').childNodes.length;
var request = i=>{
var xhr = new XMLHttpRequest();
var imgUrl = document.getElementById('gallery').childNodes[i].src;
xhr.responseType = 'blob';
xhr.open('GET', imgUrl);
xhr.onload = function(e) {
if (this.status == 200) {
var myBlob = this.response;
var filename = 'file_'+ i + '.' + GetFileName(imgUrl);
var file = new File([myBlob], filename, {type: 'image/' + GetDataType(imgUrl)});
files.push(file)
if (_i<length) return request(_i++);
resolve(files):
}
};
xhr.send();
};
request(_i++);
});
}