我有问题。我正在开发一个Web应用程序,并将上传员工的文件(即:简历,犯罪记录检查等)。这些文件的名称包括时间,人员姓名和文件类型,类似于:John_Doe_Resume_12-12-12-16:36:23.PDF。所以所有文件都在一个目录中,因此可以通过将文件路径输入浏览器直接访问该文件。
我仍然需要能够在PHP Web应用程序中访问这些文件,以便在需要时下载。我想到的一个可能的解决方案是将文件信息存储在mysql中,但这将是很多工作和额外的服务器负载。
有没有办法限制对目录的访问,所以只有PHP Web应用程序才能访问它们? (即:所以人们不能直接输入文件网址下载)
答案 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à;)