我是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