从数据库中存储和检索图像是一种更好的方法,对吧?

时间:2016-06-01 07:51:56

标签: php mysql image

我一直在使用MySQL和PHP上传和检索图像的多个教程,他们似乎都使用相同的技术;正常上传图片(没问题),然后创建另一个文档并使用PHP脚本从数据库中选择图像,然后更改内容类型'到image / jpeg,然后在iframe中显示所述文档。

那很好,花花公子; 如果我想要显示一张图片,而我在iframe中就可以了。但是,我正在开发一个CMS(类似)系统,其中最终用户将在特定页面上更改许多样式化图像,并且该技术不起作用,因为它似乎仅适用于单个图像。

我不打算将文件上传到文件夹,然后将路径存储在数据库中。我想将图像本身存储在数据库中。

我知道这是一个广泛的问题,我绝对不希望任何人给我一步一步的教程。但如果你能指引我做一件很棒的话。

提前致谢。

1 个答案:

答案 0 :(得分:1)

用于以概述教程的方式显示图像的页面,通过检索然后标题输出是一种将PHP图像调用文件设置为图像文件的方式

所以你可以拥有

<img src='phpimagefile.php?id=imgreference' alt'my image'>

例如。

如果您想要显示多个这样的图像,那么您只需将上述HTML代码转换为另一页上的foreach或类似循环。

foreach ($imagesSet as $image){
    print "<img src='phpimagefile.php?id=".$image['id']."' alt'my image'>\n";
}

修改

你可以变得非常聪明,有了一些mod_rewrite,你可以用文件路径名实际存储图像,例如:

<img src='/images/45757/goldenShower.jpg' alt='My Image'> 

mod_rewrite将重新组织它以便能够找到以下图像:

<img src='/images/phpimagefile.php?id=45757' alt'my image'>

将图像直接存储在数据库中非常麻烦,并且无法解决您的(明显的)检索问题。

如果您可以澄清为什么数据库中的图像比图像输出文件更好,如上所述,这可能会向更多人(从评论中判断)确切地显示您当前的问题。

一些注释:

  • 不要使用iframe。如上例所示,使用HTML img标记。
  • 在我们真正理解您想要获得的内容之前,我们无法指导您进行任何教程。
  • 即使您将文件上传到数据库表,您仍然需要存储对该表/行的引用才能引用正确的图像,因此imageId = 'files/image/goldenShower.jpg'只是数据库中的另一个引用就像imageId = 4365一样。