0

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

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

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

4

1 回答 1

0

你必须把

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"); 
}

瞧;)

于 2012-12-13T03:58:29.830 回答