Для загрузки файлов страница , которая инициировала загрузку, должна оставаться открытой на время загрузки .Это само по себе имеет смысл, потому что в противном случае, если пользователь решит закрыть страницу в процессе загрузки, вы можете по существу «украсть» загружаемый файл независимо от действий пользователя.
Единственное единственноеПрактический подход здесь состоит в том, чтобы позволить пользователю выбирать файлы и загружать их, используя запрос XHR, что-то вроде:
var payload = new FormData();
payload.append('file', document.getElementById('fileInput'));
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.addEventListener('load', function (e) {
// Do stuff when upload is complete
});
xhr.send(payload);
Загрузка файлов асинхронно, позволяет пользователю выполнять другие действия на той же страницев ожидании завершения загрузки (например, введите дополнительные данные, необходимые для загрузки).