温馨提示×

php file函数如何进行文件下载

PHP
小樊
81
2024-11-28 00:44:26
栏目: 编程语言

在PHP中,您可以使用file_get_contents()函数或fopen()fread()fclose()函数组合来实现文件下载功能

方法1:使用file_get_contents()函数

<?php
// 设置文件路径
$file_path = 'path/to/your/file.txt';

// 检查文件是否存在
if (file_exists($file_path)) {
    // 设置HTTP头信息,告诉浏览器这是一个文件下载请求
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file_path).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file_path));

    // 读取文件并发送给浏览器
    readfile($file_path);

    // 终止脚本
    exit;
} else {
    echo '文件不存在';
}
?>

方法2:使用fopen()fread()fclose()函数组合

<?php
// 设置文件路径
$file_path = 'path/to/your/file.txt';

// 检查文件是否存在
if (file_exists($file_path)) {
    // 设置HTTP头信息,告诉浏览器这是一个文件下载请求
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file_path).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file_path));

    // 打开文件
    $handle = fopen($file_path, 'rb');

    // 读取文件内容并发送给浏览器
    while (!feof($handle)) {
        echo fread($handle, 8192);
    }

    // 关闭文件
    fclose($handle);

    // 终止脚本
    exit;
} else {
    echo '文件不存在';
}
?>

以上两种方法都可以实现文件下载功能。第一种方法使用file_get_contents()函数简化了代码,而第二种方法则展示了如何使用fopen()fread()fclose()函数手动读取文件内容。您可以根据自己的需求和喜好选择合适的方法。

0