Web应用程序 - 限制对上载文件的访问

时间:2012-12-13 03:54:06

标签: php .htaccess file-upload acl

我有问题。我正在开发一个Web应用程序,并将上传员工的文件(即:简历,犯罪记录检查等)。这些文件的名称包括时间,人员姓名和文件类型,类似于:John_Doe_Resume_12-12-12-16:36:23.PDF。所以所有文件都在一个目录中,因此可以通过将文件路径输入浏览器直接访问该文件。

我仍然需要能够在PHP Web应用程序中访问这些文件,以便在需要时下载。我想到的一个可能的解决方案是将文件信息存储在mysql中,但这将是很多工作和额外的服务器负载。

有没有办法限制对目录的访问,所以只有PHP Web应用程序才能访问它们? (即:所以人们不能直接输入文件网址下载)

1 个答案:

答案 0 :(得分:0)

你必须把

deny from all

在.htaccess文件中。将此文件放在直接URL无法访问的目录中。因为.htaccess正在影响apache

,你的php脚本将能够进入目录

在php中你做

$filename = "yourfilename.pdf";
$filepath = "./../rel_path_to_restricted_folder/";


if(file_exists($filepath . $filename))
{
    header('Content-disposition: attachment; '. $filename);
    header('Content-type: ' . mime_content_type($filepath . $filename));
    readfile($filepath . $filename);
}
else
{

    echo("File not found"); 
}

Voilà;)