我的网站有一个表单,用户可以在其中上传文档。它们存储在 www.mysite.com/uploads 文件夹中。现在在浏览器中键入该路径的任何人都可以查看这些文件。我是为了让只有有权访问的人才能查看它。我该怎么做?谢谢。
问问题
690 次
2 回答
0
您应该使用 .htaccess 来管理所有具有登录名和密码的用户。
有关链接的更多信息:http ://www.elated.com/articles/password-protecting-your-pages-with-htaccess/
于 2013-09-20T17:28:07.553 回答
0
第 1 步:不要将文件上传到 docroot 中的文件夹。也就是说,如果您的文档根目录是/var/www/html
,则将上传位置设置为/var/www/uploads
.
第 2 步:创建一个 PHP 文件 accessfile.php 来验证 admin 并以文件名作为$_GET
参数。例如http://site.com/accessfile.php?file=myfile.pdf
在 accessfile.php 中,您可能需要编写一个小程序,如下所示:
header("Content-Disposition: attachment");
file_get_contents("/var/www/uploads/{$file}");
第 3 步:如果管理员需要浏览,请创建一个快速浏览选项:
function &list_directory($dirpath) {
if (!is_dir($dirpath) || !is_readable($dirpath)) {
error_log(__FUNCTION__ . ": Argument should be a path to valid, readable directory (" . var_export($dirpath, true) . " provided)");
return null;
}
$paths = array();
$dir = realpath($dirpath);
$dh = opendir($dir);
while (false !== ($f = readdir($dh))) {
if (strpos("$f", '.') !== 0) { // Ignore ones starting with '.'
$paths["$f"] = "$dir/$f";
}
}
closedir($dh);
return $paths;
}
于 2013-09-20T17:38:03.447 回答