在PHP脚本中删除包含文件

时间:2015-09-17 18:41:04

标签: php html

我有一个php文件来处理网站中的文件下载。它正在按预期工作。

if($_GET['type'] == "pdf") {
    $dir = __DIR__ . "/../src/files/pdf/" . $_GET['name'];
    if(file_exists($dir)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename='.basename($dir));
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($dir));
        readfile($dir);
        exit;
    } else {
        $_SESSION['err'] = "No file found";
        header("location: index.php");
        exit;
    }
}

现在我想计算正在下载文件的次数。所以我在一个不同的php文件中的类中有一个方法。我通常包含这个php文件,并在需要使用它的一些方法时创建这个类的实例。问题是,如果我将文件包含在我的文件处理程序.php中,标题将不同,下载时文件将被破坏。 那么,如何在文件处理程序中使用此文件的方法而不影响标题?

1 个答案:

答案 0 :(得分:0)

如果在输出下载标题之前将计数文件包含在file-hander.php文件的顶部之前,则下载标题将替换之前输出的标题。

此外。您的计数文件根本不能输出任何内容,因为客户端期待您正在下载的文件而不是其他内容。

我同意100%使用@rjdown,您的代码会产生巨大的潜在安全问题。我不会把它放在连接到不受信任的网络(如互联网)的服务器上。如果您希望获得帮助以确保其安全,请提出问题。