加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在PHP中强制下载文件

发布时间:2020-12-13 22:37:45 所属栏目:PHP教程 来源:网络整理
导读:我有图像列表,我想要一个“下载”链接以及每个图像,以便用户可以下载图像. 有人可以指导我如何为PHP中的任何文件提供下载链接? EDIT 我想在点击下载链接时显示下载面板我不想导航到要在浏览器上显示的图像 如果要强制下载,可以使用以下内容: ?php // Fetch
我有图像列表,我想要一个“下载”链接以及每个图像,以便用户可以下载图像.

有人可以指导我如何为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的输入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读