当用户上传图像时,我将其保存到htdocs目录下的图像文件夹中。因此,任何没有登录到站点的用户都可以输入url/images/"name“来获取它。预防这种情况的最好方法是什么?因为浏览只是请求用户直接在地址栏中键入图像的位置。我正在考虑在检查会话详细信息后,使用脚本从目录中下载每个图像文件。你认为这将是一个好的方法,如果是的话,你能给我推荐一个脚本吗?我不想用数据库。我认为这将是缓慢的。或者如果这是更好的方法,请让我知道。
THnks
发布于 2009-05-03 17:24:24
您可以将其放在htdocs/目录之外,然后将图像/目录mod_rewrite到image.php或其他目录。因此url/images/test.jpg将被转换为image.php?path=test.jpg
image.php可能看起来像这样:
<?php
if($loggedin) {
header("Content-Type: image/jpeg");
echo file_get_contents("../images/".$_GET["path"]);
}
?>别忘了清理输入!您不希望用户访问任意文件。
发布于 2009-05-03 22:43:42
我建议使用fpassthru,而不是使用echo file_get_contents(...),以避免出现大文件可能出现的“内存不足”错误。
发布于 2009-05-03 17:17:11
是的,您可以有一个只在末尾添加用户and并显示图像的image.php文件。实际上,它并没有那么多代码。
readfile()文档中提供了一个示例。但这会下载图像,您可以跳过附件标题并使用内容类型标题。
您可以将图像位置保存在数据库中,这样就不会太慢。因为我不建议将纯图像数据存储在数据库中
https://stackoverflow.com/questions/817521
复制相似问题