|
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 9
|
|
Как отследить полное скачивание файла?16.05.2012, 17:23. Показов 2948. Ответов 2
Метки нет (Все метки)
Стоит скрипт с поддержкой докачки файла. Качается все как надо, но есть одна деталь: при скачивании download-менеджерами накрутка счетчика происходит, когда файл еще не скачался. Как проконтролировать полную отдачу файла, а потом накручивать счетчик? Может какие-то вычисления с HTTP_RANGE делать? Пробовал readfile, но что толку - он возвращает кол-во байт файла, но неизвестно получил ли их пользователь. Такое ощущение, что никто с этой проблемой не сталкивался, т.к. поик по просторам и-нета результатов не дал. HELP!!!
$name = "filename.mp3"; $filename = "mp3/$name"; if (!file_exists($filename)) { header ("HTTP/1.0 404 Not Found"); exit; } $fsize = filesize($filename); $ftime = date("D, d M Y H:i:s T", filemtime($filename)); $fd = @fopen($filename, "rb"); if (!$fd){ header ("HTTP/1.0 403 Forbidden"); exit; } // Если запрашивающий агент поддерживает докачку if ($_SERVER['HTTP_RANGE']) { $range = $_SERVER['HTTP_RANGE']; $range = str_replace("bytes=", "", $range); $range = str_replace("-", "", $range); if ($range) {fseek($fd, $range);} } $content = fread($fd, $fsize); fclose($fd); if ($range) { header("HTTP/1.1 206 Partial Content"); } else { header("HTTP/1.1 200 OK"); } header("Content-Disposition: attachment; filename=".$name); header("Last-Modified: ".$ftime); header("Accept-Ranges: bytes"); header("Content-Length: ".($fsize-$range)); header("Content-Range: bytes $range-".($fsize -1)."/".$fsize); header("Content-type: audio/mpeg"); print $content;
0
|
|
| 16.05.2012, 17:23 | |
|
Ответы с готовыми решениями:
2
Как вывести полное содержание файла Как получить полное имя файла? |
|
twister
|
|
| 16.05.2012, 23:50 | |
|
http://netgen.com.ua/forums/topic.php?id=226 скрипт, которій учитывает скачиванные данные, но он у меня че-то не пашет...
Но алгоритм использовать можно
|
|
|
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 9
|
|
| 23.05.2012, 10:43 [ТС] | |
|
Вроде все логично и алгоритмы понятные, но почему-то не работает - выводит весь бинарник в браузер в виде текста несмотря на headers
0
|
|
| 23.05.2012, 10:43 | |
|
Помогаю со студенческими работами здесь
3
Как получить полное имя файла Как реализовать скачивание файла? Как вывести полное имя файла рисунка
Как оформить ссылку на скачивание файла? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|