我正在开发一个用PHP开发的高安全性系统。有些文件由用户上传并上传到目录。我怎样才能让你不能只是去文件的网址下载?但是,我仍然需要能够从网站的管理部分下载文件。
由于
答案 0 :(得分:0)
将文件放在网络目录之外。然后用它来下载:how to access file from outside root directory in php
答案 1 :(得分:0)
有几种方法可以做到这一点,一种方法是通过.htaccess文件点击上传文件的目录,其中只包含:
order deny,allow
deny from all
之后,当您想要对文件进行dwonlaod时(假设您将文件路径保存在数据库中的某个位置,或者您可以在GEt参数中以某种形式替换它们),您可以使用类似于此的代码下载它们(以及基于PHP文档的示例):
// check user credentials
check_if_logged_in();
// get path to file
$file = get_your_file_path();
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}