Php 存储和显示图像

Php 存储和显示图像,php,image,file-upload,file-storage,Php,Image,File Upload,File Storage,我还是不懂图像的存储和显示 让我举一个例子,我首先做了什么(人们说我的逻辑是个坏主意) 我一开始是这样做的,每个用户都有一个带有用户id的文件夹,表单提交后,它会将带有唯一名称的图像保存到该文件夹中,图像名称也保存在数据库中,扩展名也保存在数据库中,我已经显示了与文件夹中的文件名匹配的图像和数据库中保存的名称 示例(这里让我们跳过唯一的名称,只是为了让它更清楚一点) 用户上载名为butterfly.jpg的图像 图像存储在数据库中 id | name | 1 | butter

我还是不懂图像的存储和显示

让我举一个例子,我首先做了什么(人们说我的逻辑是个坏主意)

我一开始是这样做的,每个用户都有一个带有
用户id
的文件夹,表单提交后,它会将带有
唯一名称的图像保存到该文件夹中,图像名称也保存在数据库中,扩展名也保存在数据库中,我已经显示了与文件夹中的文件名匹配的图像和数据库中保存的名称

示例(这里让我们跳过唯一的名称,只是为了让它更清楚一点)

用户上载名为
butterfly.jpg的图像

图像存储在数据库中

id | name          |
1  | butterfly.jpg |
并以相同的名称存储在文件夹中

/images/user_id/butterfly.jpg
以这种方式显示图像

<img src="images/unser_id/<?php echo $name ?>" alt="">
“alt=”“>
因此,它与名称匹配(我希望我很清楚,如果不匹配,请道歉)

所以我知道我的逻辑是一个糟糕的逻辑,因为在数据库中存储名称将导致一个巨大的问题,可能在以后的将来导致其他问题

我想问的是,如果这不是一个大的请求,如果有人能用一些示例代码写下一个逻辑线程(我不是要求为我写),只是为了让我知道我遗漏了什么

还有其他关于我所读内容的问题

一些开发人员说,他们只在数据库中存储图像文件夹名称,这没关系,但如果只存储文件夹名称,我如何显示这些图像?因为它可能会有多个图像,如3个原始图像和2个其他缩略图


所以请不要因为这个问题而讨厌我,我问这个问题只是因为我想从更有经验的开发人员那里学习和获得建议。

我认为你走的是正确的道路。正确的做法是——将文件上传到服务器,然后将图像路径放入数据库,据我所知,你做得对。:-)

如果你不想在db中存储图像名称,也许你可以只存储文件夹名称,然后通过dir迭代并在循环中显示图像?你说这会导致什么大问题?我的意思是,如果你想了解一些东西,你应该问你的问题,而不是隐藏它;)如果图像表中的每一行占用
512字节(不会),而你有1000000个图像,这将导致数据库大小为488(+/-几MB的开销)MB。这一点都不庞大(你的图像将占用更多的空间)不要担心这些事情。过早的优化是万恶之源。@vanneto只是一个简单的问题,所以如果我将图像名称存储在数据库和服务器中,并与要显示的名称匹配,这就不是问题了?谢谢你的回答,它帮助了我:)不,至少从大小角度来看不是这样。如果用户上传会发生什么但是一个同名的图像?我会使用图像的
id
将其存储在磁盘上。如果用户可以下载它,请使用PHP
头()
函数设置一个与用户上传的名称相同的名称。为什么我认为这不好?因为,我没有将imahe路径存储在数据库中我存储了名称,并将其存储在服务器上,然后与结果匹配,所以这也没关系?很抱歉,这个愚蠢的问题只要你在整个应用程序中保持一致,我看不出有问题。我可以看到为每个用户创建一个文件夹并将图像存储在其中的好处,这样多个用户就可以上载同名图像等。只要您不将图像直接存储到数据库中,您应该完全可以。非常感谢您的回复,很抱歉,我不能给您投票。我需要阅读15篇:(