PHP 使用 header 限速下载文件

henryspace 记录精彩的程序人生 本文由博客端 https://henryspace.cn 主动推送
$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!');
}
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    156 引用 • 399 回帖 • 596 关注

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...