我有一个 php 文件,它充当我希望人们下载的所有文件的看门人,他们拥有足够的特权。
我使用将文件扔给用户的代码是
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-disposition: attachment; filename=\"".$public_filename."\"");
header("Content-Transfer-Encoding: Binary");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-length: ".$f_filesize);
readfile($file_path);
大多数文件都相当大.... 400mb-10GB。
什么是这样做的好方法,并保持真实位置+文件名的秘密,所以人们不能直接链接到文件,而是必须通过我的 download.php?file=ID 网守链接?
谢谢
编辑:我不是在问如何进行用户身份验证,所有这些都完成了。我只是问我这样做的方式是否是一个大规模的好主意。如果我继续阅读 10GB 文件,似乎可能会导致内存问题。