我真的对php文件安全上传和检索这些文件感到困惑。出于安全原因,我被告知要将上传的图像存储在文档根目录之外。我可以上传,但我不确定我是否知道如何最好地提供这些图像给我的MYSQL和HTML结构。这可能是一种愚蠢的方式,但这是我的问题:
我在我的文档根目录中存储了5张图片。在我的MYSQL数据库中,我存储了该图像的URL路径(例如www.mywebsite.com/images/123.jpg)。我的HTML索引将查询MYSQL并选择图像路径,然后列出图像的所有路径,然后显示图像。
但是,我将图像存储在文档根目录之外(出于安全原因)。有没有一种方法可以把像www.mywebsite.com/images/outofroot.jpg这样的URL路径存储到MYSQL中,然后像上面那样执行select查询?
发布于 2012-10-26 12:36:50
我很好奇你提到的这些“安全原因”是什么,所以如果你能澄清一下,那就太好了!
我的php有点生疏了,但根据我的记忆,你应该为一个jpeg做一些类似的事情:
header("Content-type: image/jpeg");
$img = imagecreatefromjpeg("/path/to/file.jpg");
imagejpeg($img);首先,我们将header设置为与jpeg图像匹配。接下来,我们使用imagecreatefromjpeg将图像加载到内存中。最后,我们使用imagejpeg提供镜像
此示例仅限于jpeg,根据您的使用情况,您可能需要其他类型。您可以编写一些逻辑(作为练习;),以使此功能适用于其他类型。查看PHP文档中的imagepng、imagegif和其他文档,了解如何做到这一点。
如果你需要某种安全检查(例如,用户必须被授权才能看到图片),那么将它们存储在工作目录之外并像这样加载它们是一个很好的想法。
但是,如果您提供的镜像不需要任何权限检查即可访问,那么您最好正常地为它们提供服务,而不是让中间人来为它们提供服务。
https://stackoverflow.com/questions/13080561
复制相似问题