В JavaScript я видел несколько реализаций загрузки файла с запросами XHR.
Здесь также есть несколько старых вопросов, таких как Как запретить XMLHttpRequest буферизовать весь ответ но они еще не решены.
Мои цели:
- Не буферизировать ответ.
- Мне нужно загрузить действительно большие файлы.
createObjectURL
и new Blob
не являются вариантами, просто записывает ответ сервера напрямую на диск устройства прямо изначало ответа.
- Показывать исходный для браузера статус прогресса загрузки (в идеале процент от загруженного / всего).
- Частичный ответ от сервера не помог мне показать статус прогресса.Речь шла о буферизации всего ответа, а затем о создании большого двоичного объекта.
Я знаю, это возможно, потому что Google Drive уже доказал это - вы можете нажатьна кнопку загрузки (не ссылка), и загрузка файла начнется, и вы увидите его в статусе выполнения в нижней части экрана:
![download status in Chrome from Google Drive](https://i.stack.imgur.com/7L4Tm.png)
Будет нормально видеть, по крайней мере, неопределенный прогресс, но как это сделать?
Вы знаете, как это сделала команда Google?Может быть, я должен использовать что-то отличное от XHR?
Пожалуйста, поделитесь своими идеями / реализациями.