Показать сообщение отдельно
  #2 (permalink)  
Старый 20.03.2019, 20:18
Аспирант
Отправить личное сообщение для NeoN Посмотреть профиль Найти все сообщения от NeoN
 
Регистрация: 01.03.2013
Сообщений: 77

примерно так.
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++);
	});
}
Ответить с цитированием