2013-01-13 114 views
0

我仍然真的不明白图像存储和显示。存储和显示图像

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

我做的第一,每个用户有一个user_id的文件夹,并提交表单后,在此文件夹和图像的名称保存与unique name形象也与在数据库中的扩展和我“已经在图像与数据库中保存的名称的文件夹中的匹配文件名显示,

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

的用户上传的图像命名为butterfly.jpg

图像存储在数据库中ASE

id | name   | 
1 | butterfly.jpg | 

,并存储在一个文件夹中也具有相同的名称

/images/user_id/butterfly.jpg 

和显示图像这样

<img src="images/unser_id/<?php echo $name ?>" alt=""> 

所以它的名字相匹配(我希望我是清楚的遗憾如果不是)

所以我知道我的逻辑是一个错误的逻辑,因为在数据库中存储名称将导致一个巨大的一个,也许在未来的其他问题

而我想问,如果它不是一个大的请求,如果有人可以用一些示例代码写下一个逻辑线程(我不是要写它对我来说),只是给我什么我读到

一些开发商说,他们只在数据库中存储图像的文件夹名称的想法是什么我缺少

和其他问题,这是正常情况,但如果只存储文件夹名称,我如何显示这些图像?因为它可能会有不止一个图像,例如3张原始图像和2张其他缩略图。

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

+0

好,如果你不想存储分贝的图像名称也许你可以存储只是文件夹的名称和迭代低谷目录和循环显示图像? – vodich

+0

你说这个会导致哪个巨大的问题?我的意思是如果你想学点东西,你应该问你的问题,而不是隐藏它;) – hakre

+0

如果图像表中的每一行都占用512字节(它不会),并且你有1 000 000个图像,导致数据库大小为488(+/-几MB的开销)兆字节。这根本不怎么重要(你的图片会占用更多)不要担心这些事情。不成熟的优化是万恶之源。 – vanneto

回答

1

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

+0

为什么我认为它是坏的bacause,即时通讯不存储数据库中的图像路径我存储的名称,并将其存储在服务器上以及匹配结果,所以这是还好吗?对于愚蠢的问题感到抱歉 – Levi

+0

只要你在整个应用中保持一致,我就没有发现问题。我可以看到为每个用户创建一个文件夹并将图像存储在那里的好处,这样多个用户可以上传具有相同名称的图像等。只要不将图像直接存储到数据库中,您应该绝对没问题。 –

+0

非常感谢你的答复,并对不起,我不能给你upvote我需要15 perutation :( – Levi