Всем доброго времени суток!
Есть потребность усовершенствовать скрипт для скачки файлов на PHP с поддержкой докачки таким образом, чтобы можно было смотреть статистику скачивания этого файла. Например, статистика по трафику или просто чтобы знать, скачался ли файл пользователем полностью. Проблема в том, что с помощью приведенного кода невозможно (как мне кажется) определить, скачался ли файл полностью, а уже тем более определить процент скачивания. Может есть какие-нибудь идеи или другие решения? Искал в Интернете, но ничего такого не ищется
function func_download_file($filepath, $mimetype = 'application/octet-stream') {
$fsize = filesize($filepath);
$ftime = date('D, d M Y H:i:s T', filemtime($filepath));
$fd = @fopen($filepath, 'rb');
if (isset($_SERVER['HTTP_RANGE'])) {
$range = $_SERVER['HTTP_RANGE'];
$range = str_replace('bytes=', '', $range);
$range = str_replace('-', '', $range);
if ($range) {
fseek($fd, $range);
}
} else {
$range = 0;
}
if ($range) {
header($_SERVER['SERVER_PROTOCOL'].' 206 Partial Content');
} else {
header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
}
header('Content-Disposition: attachment; filename='.basename($filepath));
header('Last-Modified: '.$ftime);
header('Accept-Ranges: bytes');
header('Content-Length: '.($fsize - $range));
header("Content-Range: bytes $range-".($fsize - 1).'/'.$fsize);
header('Content-Type: '.$mimetype);
header('Content-transfer-encoding: binary');
fpassthru($fd);
fclose($fd);
exit;
}