gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:34:10 25 4
gpt4 key购买 nike

我必须管理许多用户的 cooking 食谱照片、个人资料照片等...

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

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

最佳答案

购买“服务器”会得到什么

正如评论中所说,如果您采用“真正的托管”(而不是打包的“wordpress 解决方案”),它将与您的本地开发机器相同。

你将拥有:

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

如何处理图片尺寸?

Pictures are usually big, so how can I guess the size I'll need to store them ?

您不是第一个必须存储用户图片的人:想想 Facebook、Reddit 和许多其他服务。

关键是他们不“按原样”存储图片,他们使用两个因素来控制大小:

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

对于第一点,2'000px 已经是大约 4K 显示高度 (~2,2Kpx)。对于 web 目的,从很久以前就使用 500px,但随着屏幕变得更好,1Kpx 和 2Kpx 高度似乎是标准。选择适合您的用途。

对于第二个,您可能知道PNGJPG 格式。第一个是“无损”压缩,第二个是“有损”压缩。这意味着如果您想节省空间,您将不得不牺牲图片质量,并选择或多或少压缩的 JPG。

在这些之后,每张图片应该低于 500Ko,因此对于您关于食谱的用例,这意味着在达到 1Go 里程碑之前至少有 2'000 个带有图片的食谱...


文件存储/数据库存储

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

那么,有什么好的解决办法呢?我会说两者:

  • 从好的方面来说,存储在数据库中是处理图片的最简单方法,因为它们实际上是保存用户信息的行的一部分。您可以检索它们而无需担心文件夹和路径,它们也会在您的数据库备份中,并将沿着数据库中的用户行删除。
  • 不利的一面是,这并不是 DB 的真正用途。图片通常非常大(DSLR 可以达到 10Mo:10'000'000 个字符的大小)并且它会减慢您的查询速度。如果您不小心,它可能缓存不佳。

关于php - 管理网站用 SQL 保存的图像的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com