允许图像仅在用户登录时显示



我是PHP/Web开发的新手,我试图创建一个安全的文件查看器。我正在使用一个表单来登录PHP会话,检查phpmyadmin数据库的有效信息。

我的问题是如何禁用直接路径访问,但允许用户在登录时查看图像?

我尝试过。htaccess文件。我已经禁用了路径,但不知道如何显示它的图像。

一旦我可以显示图像,有没有人有任何建议,我如何才能确保只有人登录可以查看他们?

非常感谢!

PS:第一篇!:)(似乎找不到足够的信息在其他线程)

您应该添加一个php脚本,该脚本检查用户是否登录,如果是,则输出图像(它是什么类型的文件)。你可以使用readfile,在那个页面上有一个详细的例子。

if ($userIsLoggedIn) {
    $path  = realpath($imagePath . '/' . $_GET['filename']);
    if (substr($path, 0, strlen($imagePath) + 1) == $imagePath) {
        // Check that the user doesn't request ../../../etc/shadow or something
        // Add headers
        header('Content-Type: image/jpeg');
        readfile($imagePath . '/' . $_GET['filename']);
    }
}

您可以将文件置于正常访问之外,并通过PHP访问它们,如下所示:

header('Content-type: '.$type);  //$type = 'image/jpeg' but can be other file type
header('Content-Length: ' . filesize($path . $filename));
header('Content-Disposition: attachment; filename=MyFileName.ext');
readfile($path . $filename);
exit();

检查用户是否可以查看该文件,然后如上所示显示。如果想显示图像,可以放弃Content-Disposition。

但请确保在此之前不要发送其他数据。

http://www.boutell.com/newfaq/creating/forcedownload.html

相关内容

  • 没有找到相关文章

最新更新