Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Промежуточная загрузка файла

#javascript #html5 #файлы #загрузка


на некоторых сайтах, при загрузке файла, файл "скачивается в браузер", после прохождения
загрузки, файл отдается браузеру уже в скачанном ввиде. Как это происходит? Что за
технология? И как такое сделать?


    


Ответы

Ответ 1



Это новинки, поэтому осторожно отнеситесь к совместимости. XMLHttpRequest может возвращать в качестве результата Blob. Да, обычный XHR: var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "blob"; oReq.onload = function(oEvent) { var blob = oReq.response; // ^ вот этот Блоб }; oReq.send(); ...за прогрессом скачивания можно следить, задав обработчик onprogress. Из Blobа можно сделать URL: objectURL = URL.createObjectURL(blob); ...и отдать его на "скачивание" любым удобным вам способом. Блоб существует исключительно на клиенте, и если существует, то уже целиком, поэтому "скачивание" блоба будет по факту сохранением уже загруженного его содержимого. Блоб можно сформировать огромным количеством способов, XHR только один из них.

Комментариев нет:

Отправить комментарий