LINUX.ORG.RU

Есть ли способ для страницы узнать что браузер закончил загрузку файла с нее?

 , ,


0

1

Сабж.

Подробнее: простая текстовая страница, на ней простые линки на файлы (например, зип архивы). Пользователь тыкает на скачку, браузер спрашивает куда сохранить, сохраняет.

Я понимаю что страница с процессом скачивания никак не связана и что ей нужно общаться с сервером чтоб она была в курсе его действий, но может есть какой js-интерфейс у браузеров, о котором все знают, только мне не рассказывали?

★★★★★

Теоретически можно запилить свой костыль-загрузчик через ajax/websoket, сохранять блоб в сторку, потом сохранять строку в файл. Еще можно порыть в сторону iframe.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Теоретически можно запилить свой костыль-загрузчик через ajax/websoket сохранять блоб в сторку, потом сохранять строку в файл

А браузерному js-у уже разрешили записывать в файловую систему?

Еще можно порыть в сторону iframe.

а что изменится с айфреймом? не улавливаю

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

А браузерному js-у уже разрешили записывать в файловую систему?

Можно «скачать» из локального блоба. (См. filesaver.js)

Tanger ★★★★★
()
Ответ на: комментарий от pihter

А браузерному js-у уже разрешили записывать в файловую систему?

Может. Через костыли, например.

а что изменится с айфреймом? не улавливаю

Он будет у тебя узлом DOM на странице, а там можно вымутить как минимум окончание загрузки. Я бы попробовал через websocket.

crutch_master ★★★★★
()

это зачем такое? чем не устраивает стандартное поведение???

Всю выдачу можно отследить на сервере, а на клиенте этим может заниматься AJAX-запрос.

anonymous
()
Ответ на: комментарий от anonymous

это зачем такое? чем не устраивает стандартное поведение???

пользователь нажимает на кнопочку «скачать», остальные кнопочки типа просмотра и скачки соседних надо временно деактивировать до окончания загрузки. такую задачу оставили. сходу я сказал что это невозможно на стороне клиента, но, минуту потупив сказал что возможно я чего-то не знаю и есть какой интерфейс у браузера

насчет сервер сайда — понятно, я не совсем про это спрашивал

pihter ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Может. Через костыли, например.

Тут у меня видеофайлы, загрузка сначала в оперативку, а потом вна хард — так себе идея. Но спасибо, я про такое не знал

Он будет у тебя узлом DOM на странице, а там можно вымутить как минимум окончание загрузки

хм... надо попробовать

Я бы попробовал через websocket.

в смысле чтоб страница сервером (с которого скачивать) трудилась? опять же, для этого файл сначала нужно загрузить в оперативку, а он тяжелый

pihter ★★★★★
() автор топика
Ответ на: комментарий от xDShot

см. mega.nz

я тоже про него подумал сразу, но там, очевидно, тесная ajax-связь с сервером. или все тот же механизм, что и file_saver.js ?

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Скорее второе. Сначала зашружается блоб внутри интерфейса. Потом распаковыватся и дешифруется, через «Загрузки».

xDShot ★★★★★
()
Ответ на: комментарий от pihter

опять же, для этого файл сначала нужно загрузить в оперативку, а он тяжелый

Ну, для pdf'ок бы прокатило. С видео, конечно, не вариант.

crutch_master ★★★★★
()
Ответ на: комментарий от anonymous

Всю выдачу можно отследить на сервере, а на клиенте этим может заниматься AJAX-запрос.

+1.

vtVitus ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.