黑龙码

php实现文件下载

晓峰 时间:2022-09-08 21:27:44 阅读:571
--------------------------------------------------------- Ta 只分享的内容开始 ---------------------------------------------------------------------

php实现文件下载

原理就是使用fread()函数把文件直接输出到浏览器,除了通过文件名下载,我们也可以在后台通过fread方法,读出文件内容,然后将文件内容以流的方式直接输出到浏览器。代码如下:

<?php

$file_name = "down.rar";     // 下载文件名
$file_dir = "./";        // 下载文件存放目录
// 检查文件是否存在
if (!file_exists($file_dir . $file_name)) {
    header('HTTP/1.1 404 NOT FOUND');
} else {
    // 以只读和二进制模式打开文件
    $file = fopen($file_dir . $file_name, "rb");

    // 告诉浏览器这是一个文件流格式的文件
    Header("Content-type: application/octet-stream");
    // 请求范围的度量单位
    Header("Accept-Ranges: bytes");
    // Content-Length是指定包含于请求或响应中数据的字节长度
    Header("Accept-Length: " . filesize($file_dir . $file_name));
    // 用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
    Header("Content-Disposition: attachment; filename=" . $file_name);

    // 读取文件内容并直接输出到浏览器
    echo fread($file, filesize($file_dir . $file_name));
    fclose($file);

    exit ();
}


--------------------------------------------------------- Ta 只分享了这些内容 ---------------------------------------------------------------------

本文来源:黑龙码(gongfuma.com.cn)
声明:本文系黑龙码原创稿件,版权属[黑龙码 gongfuma.com.cn]所有。
未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:黑龙码",违者将依法追究责任。

相关文章

  • 回到顶部