【问题标题】:Web application - restrict access to uploaded filesWeb 应用程序 - 限制对上传文件的访问
【发布时间】:2012-12-13 03:54:05
【问题描述】:
我有问题。我正在开发一个网络应用程序,并将为员工上传文件(即:简历、犯罪记录检查等)。这些文件的名称包括时间、员工姓名和文件类型,类似于:John_Doe_Resume_12-12-12-16:36:23.PDF。所以所有的文件都会在一个目录下,所以可以通过在浏览器中输入文件路径直接访问这个文件。
我仍然需要能够从 PHP Web 应用程序中访问这些文件,以便在需要时进行下载。我想到的一种可能的解决方案是将文件信息存储在 mysql 中,但这将是大量工作和额外的服务器负载。
有没有办法限制对目录的访问,以便只有 PHP Web 应用程序可以访问它们? (即:所以人们不能直接输入文件url下载)
【问题讨论】:
标签:
php
.htaccess
file-upload
acl
【解决方案1】:
你必须放
deny from all
在您的 .htaccess 文件中。将此文件放在您无法通过直接 url 访问的目录中。您的 php 脚本将能够进入该目录,因为 .htaccess 正在影响 apache
在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");
}
瞧;)