Скрипт скачки на PHP с поддержкой статистики
От: Crash  
Дата: 07.02.09 04:59
Оценка:
Всем доброго времени суток!

Есть потребность усовершенствовать скрипт для скачки файлов на 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;
}
скачка php скрипт докачка
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.