存储网页图像

时间:2011-04-20 16:12:30

标签: php mysql file

  

可能重复:
  MySQL - storing images in a database??

我正在为我的网页制作个人资料系统,但我想知道存储图像的最佳方式是什么。

我读过的第一个方法是在mysql中使用BLOB。第二个是我计划首先做的事情,首先我会从上传脚本中获取图像,然后给图片一个id(md5)然后重命名并将图片移动到名为“md5”.jpg的文件夹中

我想知道最好的选择是什么。

7 个答案:

答案 0 :(得分:3)

我之前看到过这个问题,普遍接受的答案是将图像存储在一个文件夹中,然后将URL存储在数据库中。我认为在技术上可以使用BLOB将图像存储在数据库中,但是从我在线阅读的文档和共识来看,这不是一个理想的场景。

数据库往往适用于Numbers,Strings和数据文件。

以下是本网站上您要问的问题的一些链接:

Storing images on a database

Storing Images in DB - Yea or Nay?

答案 1 :(得分:1)

来自Choosing data type for MySQL?

  

MySQL无法与任何人合作   大于的数据   max_allowed_pa​​cket(默认值:1M)in   大小,除非你构造复杂   和记忆密集的解决方法   服务器端。这进一步限制了   可以用TEXT / BLOB做什么   类型,一般使   LARGETEXT / LARGEBLOB类型无用   默认配置。

如此小心你的blob我喜欢将图像存储在硬盘驱动器上以及数据库中的路径/ ID。存储在数据库中的优点非常小,而且速度可能较慢。

答案 2 :(得分:0)

两者都很好。但我总是选择使用实际文件给图像一个id。这是因为你的服务器和php必须为blob做更多的工作。

答案 3 :(得分:0)

最好的想法可能是将实际文件存储在Web /文件服务器上,并且只将该文件的链接存储在数据库中。这可以防止您的数据库服务器因不必要的繁忙工作而陷入困境。

答案 4 :(得分:0)

查看http://transloadit.com,这是一项上传和存储(亚马逊云)图片的服务。

答案 5 :(得分:0)

数据库存储可以具有一些经常被遗忘的优点。

  • 您可以将图像与数据库一起备份,无需文件系统备份。

  • 当您的网站流量过大时,可能更容易扩展

当然,如果你有很多图像,那就不合适了。像用户贡献的内容等。

但是如果你有一个小报纸网站,网上的文章不多,你可以完美地将缩略图存储在数据库中,并在复制奴隶上构建你的系统。

然而......老实说:

将您的图像存储在亚马逊s3上。简单的api,冗余,高可用性和负载均衡的存储,便宜。

答案 6 :(得分:0)

我建议将它们保存为常规静态文件。然后将其文件名存储在数据库中。您可以提取匹配的文件名和file_get_contents图像数据或直接链接到真实图像文件。

不要将图像数据本身存储在数据库中。