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