gpt4 book ai didi

php - 引用用户上传的文件 - 数据库还是文件名?

转载 作者:行者123 更新时间:2023-11-29 23:27:31 25 4
gpt4 key购买 nike

我有一个简单的用户评论系统。这些可以带有图像。目前我将用户上传的图像存储在一个文件夹中。我不会为图像向数据库写入任何内容,非常简单,我使用评论 id 命名图像文件(每个评论只允许一张图像)并将它们全部存储在一个文件夹中:

move_uploaded_file($upload_pic,'images/'.mysql_insert_id().'.jpg');
//please note I am also upgrading to mysqli

然后,在从数据库检索评论数据时,我正在检查 file_exists() 并可能显示带有评论的完整图像。

if (file_exists('images/'.$fid.'.jpg')) echo '<img width="576" src="images/'.$fid.'.jpg">';

现在我想对其进行更改,以便能够存储和显示每个帖子更多的图像(仍然限制为 4 个),并且还有缩略图。

问题来了

对于这样简单的系统,将所有文件引用存储在数据库中的单独表中是否更快,或者增强与评论 ID 相关的文件命名

  1. 如果数据库 - 如何命名文件? using uniqid ?简单映射表id,imgname。
  2. 如果文件命名我正在考虑XXXXXX-Y.jpg并使用glob("images/".round(XXXXXX/1000)."检索。/XXXXXX-*.jpg"),一个文件夹中最多有 1000 个文件。 (目前,过去 10 年中 105,000 篇帖子中包含 6,500 张图片)

对我来说,文件命名似乎更简单,因为我不需要存储与图像相关的任何附加信息,但另一方面,似乎大多数人都使用数据库。并希望专注于性能更好的方式。

最佳答案

根据我在房地产网站工作的经验,检查文件是否存在非常昂贵。

因此,如果数据库中有一个包含文件名的表,那么显示速度会快得多。您不会每次都显式检查所有四个文件的 file_exists,只需在 db 中显示该注释的图像次数即可显示图像标签。就像如果您有 1 个评论图像,您将不需要检查其他 3 个图像,您只从数据库中找到了 1 个,因此您只需立即显示它。

对于命名,请保持简单,例如使用:

3673-1-originalfilename.jpg 
3673-2-originalfilename.jpg
3673-3-originalfilename.jpg

遵循以下模式

"commentid"-"count"-"original-filename"."extension"

不用说,如果您还必须喜欢缩略图文件名或文件大小等,您可以在数据库中存储更多有关图像的数据,并且您可以根据需要存储任意数量的图像以进行评论。

希望这有帮助!

关于php - 引用用户上传的文件 - 数据库还是文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26843308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com