Php 禁用直接下载

Php 禁用直接下载,php,apache,file,download,Php,Apache,File,Download,我正在开发一个用PHP开发的高安全性系统。有些文件由用户上载并上载到目录。我怎样才能让你不只是去文件的url下载?然而,我仍然需要能够从网站的管理部分下载该文件 谢谢将文件放在web目录之外。然后使用此文件下载:有几种方法可以做到这一点,一种是通过.htaccess文件将上载文件的目录连接起来,它只包含: order deny,allow deny from all 之后,当您希望dwonlaod文件时(假设您将文件路径保存在数据库中的某个位置,或者您可以在GEt参数中以某种形式传递它们),您

我正在开发一个用PHP开发的高安全性系统。有些文件由用户上载并上载到目录。我怎样才能让你不只是去文件的url下载?然而,我仍然需要能够从网站的管理部分下载该文件


谢谢

将文件放在web目录之外。然后使用此文件下载:

有几种方法可以做到这一点,一种是通过.htaccess文件将上载文件的目录连接起来,它只包含:

order deny,allow
deny from all
之后,当您希望dwonlaod文件时(假设您将文件路径保存在数据库中的某个位置,或者您可以在GEt参数中以某种形式传递它们),您可以使用类似于以下内容的代码(以及基于PHP文档的示例)下载它们:


使目录位于web路由之外。
// 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;
}