【问题标题】:What is the best way to associate a thumbnail with an image in a mysql database?将缩略图与 mysql 数据库中的图像相关联的最佳方法是什么?
【发布时间】:2012-03-16 02:00:48
【问题描述】:

我正在为一个将成为产品目录的网站建立一个数据库。 我的图像表有问题。我有一个 php 脚本,可以用三种尺寸调整图像的大小,用后缀重命名它们,将它们写入目录并在图像表中添加对它们的引用。

我无法确定缩略图(小图像)如何与中大图像相关联,因为我计划为每个产品创建多个图像。我希望能够通过 php 脚本将所有缩略图添加到带有中型或大型图像链接的页面。

这是我目前所拥有的,

image-id  product-id  filename              size    caption  width  height  alt
13        1           PassPro150_large.jpg  large   NULL     632    569     NULL
14        1           PassPro150_medium.jpg medium  NULL     250    225     NULL
15        1           PassPro150_small.jpg  small   NULL     115    103     NULL

有没有标准的方法来做到这一点?我应该制作三张表,每种尺寸一张,并将它们与主外键相关联吗?我还认为我可以通过字符串操作来做到这一点,将 _small 替换为 _large,因为上传的所有图像都将具有相同的后缀。有什么建议吗?

【问题讨论】:

  • 另一列可能是thumbnail-id?

标签: php mysql image thumbnails


【解决方案1】:

我想知道为什么要为此使用数据库

你不能只在图片名称中添加一个“小”字,并将其与预定义的尺寸一起放入 img 标签中吗?

【讨论】:

  • 因为我不想为每个产品制作一个页面,我将有一个 php 脚本来为所有产品创建所有页面。大约 50 种产品。
  • 您似乎无法获得自己问题的上下文。编辑了我的答案,让你更清楚。
  • 感谢您的帮助,但我不明白您的意思。 php脚本如何在没有数据库的情况下找到图像并将其连接到产品?
  • 您可以根据产品 ID 命名文件和/或将它们存储在以产品 ID 命名的文件夹中。
  • 如上所述,或将它们存储在以产品ID命名的文件夹中。即使区分以 id 命名的文件也没什么大不了的。程序员会在一秒钟内解决这样的问题。
【解决方案2】:

约瑟夫所说的是一种解决方案。 或者,您可以创建多个不同大小的缩略图文件夹,例如 thumb_small、thumb_medium 并将图像以相同的名称保存在其中。

您只需将文件名保存在数据库中。当您需要显示图像时,您可以将 url 调整到特定文件夹。

【讨论】:

  • 感谢您的建议,这是一种解决方案,但后来我丢失了尺寸数据。
  • 虽然我想我可以在同一行记录所有三组维度。
  • 维护单独的文件夹是额外的开销。我建议将它们保存在一个文件夹中(省去使用 PHP 创建文件夹的麻烦)并使用更好的文件名方案
  • @Joseph 您不使用 PHP 创建文件夹。您事先创建它们。 Rob Fenwick 不是预定义的尺寸!!如果您谈论的是原始大小,那么就像您说的那样,您可以将它们保存在数据库本身中。同一张图片不需要多行,将原始大小记录在同一行中,然后从具有相同文件名的相应文件夹中获取所需大小的图像。
  • 不,它们都是不同的尺寸,图像会根据大图像和小图像的区域调整大小,并在中等图像上调整为特定宽度,但高度仍然会有所不同。但到目前为止,您的解决方案似乎是最简单的,我可以为 width_small、height_small、width_medium、height_medium 等提供列。
【解决方案3】:
  1. 创建一个表来记录图像。
  2. 上传图片后,重命名图片以对应商品 ID
  3. 除此之外,还要附加它的图像编号
  4. 使用 PHP 脚本调整图像大小并作为后缀附加大小

现在您将拥有这种格式:

imageid_imagenumber_imagesize.jpg

地点:

  • imageid - 对应于商品 ID
  • 图像编号 - 将其与同一产品的其他图像区分开来
  • imagesize - 大小的后缀

将它们放在您网站的某个位置,您就可以开始使用了。不需要数据库

关于图像尺寸和其他关于图像的元数据,请阅读更多关于getting the EXIF data using PHP

【讨论】:

  • 图像没有预定义的尺寸,因为有些在水平尺寸上较宽,有些在垂直尺寸上较大。 php脚本大小按指定区域调整大小,中按宽度调整高度,
  • 我已经有一个后缀,_small _medium 和 _large,计划是有一个 php 脚本来查找特定产品的所有缩略图,而无需我做任何事情,并链接到 large 或 medium图片,但问题是如何让脚本链接到正确的大图片。
  • 更新了我的答案。现在数据库完全没用了。
  • 谢谢你的想法,但我不明白当上传图像时,重命名图像的 php 脚本会知道将哪个数字添加到后缀,脚本如何知道如何许多(如果有的话)已经上传了?编写页面的脚本将如何获取特定产品的所有图像?他们不会都有相同数量的图像。我是否在文件名中使用通配符或其他内容?如果是这样(尽管我不确定这是否可能),我似乎又回到了将缩略图与正确图像相关联的同样问题。
猜你喜欢
  • 2019-11-17
  • 2010-09-09
  • 2021-07-13
  • 2010-09-06
  • 2015-06-15
  • 2010-10-23
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
相关资源
最近更新 更多