Цитата:
|
В принципе - есть: пользователь скачивает файл по персональной уникальной ссылке. Сервер соединён со скриптом на странице по вебсокету(или классической ему альтернативе) и риалтайм посылает в js отчёты по текущему скачиваемому фрагменту. Немного вычислений и прогрессбар готов. Теоретически это возможно, а вот как сделать на практике со стороны сервера - сходу не скажу. С другой стороны, сервер - не моя забота, хехехе.
|
Кстати, только щас обнаружил косяк по основному вопросу (со скачкой файла) файл то бьётся! Размер примерно в два раза больше получается чем реальный, можешь подсказать что не так?
$.ajax({ url: obj.data('url'), type: 'GET', xhr: function(){ var xhr = $.ajaxSettings.xhr(); xhr.onprogress = function(event) { jq_span.text(Math.ceil(event.loaded / event.total * 100) + '%'); } return xhr; }, success: function(body) { var blob = new Blob([body], {type: 'audio/mp3'}); var url = URL.createObjectURL(blob); var jq_a = $('<a href="' + url + '" download="' + obj.data('title') + '.mp3">dl</a>'); jq_a.hide().insertAfter(obj); jq_a[0].click(); setTimeout(function(){window.URL.revokeObjectURL(url)}, 100); } }); |
И сам же опять разобрался)) Просто использовал xmlhttprequest напрямую с responsetype = 'blob', только хотелось бы еще узнать как это с помощью самого jquery ajax сделать, чтоб "все как у людей" было...
|
Часовой пояс GMT +3, время: 23:53. |