只有选择用户才能访问文件夹

时间:2013-09-20 17:23:55

标签: php web directory web-folders

我的网站上有一个用户可以上传文档的表单。它们存储在www.mysite.com/uploads文件夹中。现在,在浏览器中键入该路径的任何人都可以查看这些文件。我是这样做的,只有有访问权限的人才能查看它。我该怎么办?感谢。

2 个答案:

答案 0 :(得分:0)

您应该使用.htaccess通过登录名和密码管理所有用户。

有关链接的更多信息:http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/

答案 1 :(得分: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;
}