我有一个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中,标题将不同,下载时文件将被破坏。 那么,如何在文件处理程序中使用此文件的方法而不影响标题?
答案 0 :(得分:0)
如果在输出下载标题之前将计数文件包含在file-hander.php文件的顶部之前,则下载标题将替换之前输出的标题。
此外。您的计数文件根本不能输出任何内容,因为客户端期待您正在下载的文件而不是其他内容。
我同意100%使用@rjdown,您的代码会产生巨大的潜在安全问题。我不会把它放在连接到不受信任的网络(如互联网)的服务器上。如果您希望获得帮助以确保其安全,请提出问题。