如何在PHP中强制下载文件

前端之家收集整理的这篇文章主要介绍了如何在PHP中强制下载文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有图像列表,我想要一个“下载”链接以及每个图像,以便用户可以下载图像.

有人可以指导我如何为PHP中的任何文件提供下载链接

EDIT

我想在点击下载链接显示下载面板我不想导航到要在浏览器上显示的图像

如果要强制下载,可以使用以下内容
<?PHP
    // Fetch the file info.
    $filePath = '/path/to/file/on/disk.jpg';

    if(file_exists($filePath)) {
        $fileName = basename($filePath);
        $fileSize = filesize($filePath);

        // Output headers.
        header("Cache-Control: private");
        header("Content-Type: application/stream");
        header("Content-Length: ".$fileSize);
        header("Content-Disposition: attachment; filename=".$fileName);

        // Output file.
        readfile ($filePath);                   
        exit();
    }
    else {
        die('The provided file path is not valid.');
    }
?>

如果您只是使用普通链接链接到此脚本,则将下载该文件.

顺便提一下,上面的代码片段需要在页面的开头执行(在任何标题或HTML输出发生之前).如果您决定创建一个基于此的函数来下载任意文件,请注意 – 您需要确保您阻止目录遍历(realpath很方便),只允许从定义区域内下载等,如果您接受来自$_GET或$_POST的输入.

原文链接:https://www.f2er.com/php/133647.html

猜你在找的PHP相关文章