欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP 弹出文件下载 原理 代码

程序员文章站 2022-03-09 21:51:20
/** * @author default7 * @description 演示php弹出下载的原理 * * @param $file_name */ function down...
/**
 * @author      default7
 * @description 演示php弹出下载的原理
 *
 * @param $file_name
 */
function downfile($file_name)
{
    $file_path = "/tmp/" . $file_name;
    $buffer = 102400; //一次返回102400个字节
    if (!file_exists($file_path)) {
        echo "<script type='text/javascript'> alert('对不起!该文件不存在或已被删除!'); </script>";

        return;
    }
    $fp = fopen($file_path, "r");
    $file_size = filesize($file_path);
    $file_data = '';
    while (!feof($fp)) {
        $file_data .= fread($fp, $buffer);
    }
    fclose($fp);

    //begin writing headers
    header("pragma: public");
    header("expires: 0");
    header("cache-control: must-revalidate, post-check=0, pre-check=0");
    header("cache-control: public");
    header("content-description: file transfer");
    header("content-type:application/octet-stream;");
    header("accept-ranges:bytes");
    header("accept-length:{$file_size}");
    header("content-disposition:attachment; filename={$file_name}");
    header("content-transfer-encoding: binary");
    echo $file_data;
}