LINUX.ORG.RU

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

 , ,


0

1

Сабж.

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

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

★★

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

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

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

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

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

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

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

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

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

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

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

crutch_master ★★★★★ ()

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

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

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

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

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

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

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

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

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

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

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

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

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

pihter ★★ ()