我有帖子系统,用户可以在帖子中上传图片,我打算构建图片路径网址,而不是将上传的图片路径存储在数据库中。
我将使用唯一的帖子ID来构建帖子图片的网址路径,如:
$path = "images/{$postID}/";
然后在渲染帖子时我将使用
$images = glob($path);
删除帖子后我会简单地说:
unlink($path);
为什么我读到的关于php图像上传的所有实现都包含存储图像路径的表?为什么这种方法有任何我不知道的缺点?
答案 0 :(得分:0)
我认为这个可以进行一些讨论。虽然建议将图像位置存储在数据库中,但并不总是最好的方式。如果您根据自己的逻辑找到一些算法来根据博客ID唯一地命名图像,或者可以节省数据库延迟成本。
对于同样的我想举例说明一个示例用例。您要么从数据库中获取博客文本。现在,您可以添加另一个字段来存储与之关联的图像数量。现在使用博客假设uq1
的唯一ID。如果该博客有6张图片,您可以将图像命名为
$path = $uq1.$imageindex
请记住,您还必须将图像存储在同一路径中。您可以随时获得想象并添加简单的XOR加密。虽然使用XOR主要是在您将敏感数据关联到同一个时。这将为您节省一些数据库延迟。 希望这有帮助
答案 1 :(得分:0)
以这种方式做这件事是一个好主意。 除非你不需要重复很多图像 例如,如果您有尺寸为500K的图像apple.jpg, 你有2000个帖子应该有苹果图像。 所以你将节省2000 x 500k的苹果图像。
但如果你在数据库中有它,你只需从中选择图像 作为画廊的东西,所以你只有1张图像的apple.jpg 但它使用数据库表链接了2000个帖子。
但如果你不在乎!关于重复和数据大小,或者你确定没有任何帖子有任何像这样的图像!好吧。
摘要:使用其ID保存文件夹中的所有帖子图片是一种简单的方法 但它会花费你的空间(重复等) 另一方面,将图像链接保存在数据库中,只需将其链接到需要它的每个帖子。它更好。