【发布时间】:2010-06-09 22:21:40
【问题描述】:
我有一个 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 文件,似乎可能会导致内存问题。
【问题讨论】: