管理网站SQL保存图像的最佳方法是什么?

时间:2017-05-06 17:52:56

标签: php mysql sql

我必须管理许多用户烹饪食谱,个人资料图片等照片......

目前我正在使用本地XAMPP服务器在网站上工作:图像存储到项目目录中的文件夹中,引用的链接将SQL插入数据库。如果需要,我会查询以获取照片的网址。

如果将来我决定购买一个虚拟主机,我可以在哪里保存他们上传的用户图像?

1 个答案:

答案 0 :(得分:3)

当我购买"服务器"

时,我会得到什么?

正如评论中所说,如果你采取真正的主机" (不是打包的" wordpress解决方案")它将与您的本地开发机器相同。

您将拥有:

  • 您可以通过FTP(有时是SSH)访问的文件夹/www/
  • 在给定网址启用的phpMyAdmin网络界面
  • 一个mySql数据库,您可以从phpMyAdmin或您的代码中获取凭证。

如何处理图片尺寸?

  

图片通常很大,所以我怎么能猜出我需要存储它们的尺寸?

你不是第一个需要存储用户图片的人:想想Facebook,Reddit和许多其他服务。

关键是他们不会存储图片"因为它",他们使用两个因素来控制尺寸:

  • 图片的实际大小(以像素为单位)。 (你通常不需要一张5' 000 x 3' 500px图片 - 用于打印A0海报 - 但相机会给你什么)
  • 格式和压缩因子。

对于第一点,2� 000px已经在4K显示高度(~2,2Kpx)附近。出于网络目的,从年龄开始使用500px,但随着屏幕变得更好,1Kpx和2Kpx高度似乎是标准。选择适合您的用途。

对于第二种情况,您可能知道PNGJPG格式。第一个是"无损"压缩,第二是有损"一。这意味着如果你想节省空间,你必须权衡你的图片质量,并选择压缩或多或少的JPG。

在这些之后,每张照片应该低于500Ko,所以对于你的食谱用例,这意味着在达到1Go里程碑之前,至少有2&000; 000个食谱和图片......

文件存储/数据库存储

有时您可能会听到"将图片存储在数据库中"。除了将基于名称或基于ID的路径保存到图片的存储文件夹之外,这是另一种解决方案。 有了这个,您可以直接将图片的二进制数据存储在数据库的一列中(参见how to store / how to display)。

那么,什么是好的解决方案?我会说两个:

  • 好的一面是,存储在数据库中是处理图片最简单的方法,因为它们实际上是保留用户信息的一部分。您可以在不打扰文件夹和路径的情况下检索它们,它们也会在您的数据库备份中,并且将沿着数据库中的用户行删除。
  • 在不利方面,它并不是真正的数据库。图片通常非常大(数码单反相机可以达到10Mo:大小为10&#39,000&#39,000个字符)并且它会减慢您的查询速度。如果您不小心,可能会缓慢缓存。