henryspace

记录精彩的程序人生 开始使用

PHP 使用 header 限速下载文件

$local_file = dirname($_SERVER["DOCUMENT_ROOT"]) . '/' .'12.zip';
$filesize = filesize($local_file);

//设置下载的速度,单位kb/s
$download_speed = 500;
if(file_exists($local_file) && is_file($local_file)){
    //以附件形式输出
    header('Cache-control: private');
    header('Content-Type: application/octet-stream');
    header('Content-Length: '.$filesize);
    header('Content-Disposition: filename='.strtotime('now'));

    //刷新输出缓冲
    flush();
    //打开目标文件
    $file=fopen($local_file,'r');
    while(!feof($file)){
        //每次以round($download_speed*1024字节的速度输出,这是限制下载技术的关键
        print fread($file,round($download_speed*1024));
        flush();
        sleep(1);
    }
    die('ok');
}else{
    die($local_file.'does not exist!');
}
评论
留下你的脚步
推荐阅读