我正在为我的网页制作个人资料系统,但我想知道存储图像的最佳方式是什么。
我读过的第一个方法是在mysql中使用BLOB。第二个是我计划首先做的事情,首先我会从上传脚本中获取图像,然后给图片一个id(md5)然后重命名并将图片移动到名为“md5”.jpg的文件夹中
我想知道最好的选择是什么。
答案 0 :(得分:3)
我之前看到过这个问题,普遍接受的答案是将图像存储在一个文件夹中,然后将URL存储在数据库中。我认为在技术上可以使用BLOB将图像存储在数据库中,但是从我在线阅读的文档和共识来看,这不是一个理想的场景。
数据库往往适用于Numbers,Strings和数据文件。
以下是本网站上您要问的问题的一些链接:
答案 1 :(得分:1)
来自Choosing data type for MySQL?
MySQL无法与任何人合作 大于的数据 max_allowed_packet(默认值:1M)in 大小,除非你构造复杂 和记忆密集的解决方法 服务器端。这进一步限制了 可以用TEXT / BLOB做什么 类型,一般使 LARGETEXT / LARGEBLOB类型无用 默认配置。
如此小心你的blob我喜欢将图像存储在硬盘驱动器上以及数据库中的路径/ ID。存储在数据库中的优点非常小,而且速度可能较慢。
答案 2 :(得分:0)
答案 3 :(得分:0)
最好的想法可能是将实际文件存储在Web /文件服务器上,并且只将该文件的链接存储在数据库中。这可以防止您的数据库服务器因不必要的繁忙工作而陷入困境。
答案 4 :(得分:0)
查看http://transloadit.com,这是一项上传和存储(亚马逊云)图片的服务。
答案 5 :(得分:0)
数据库存储可以具有一些经常被遗忘的优点。
您可以将图像与数据库一起备份,无需文件系统备份。
当您的网站流量过大时,可能更容易扩展
当然,如果你有很多图像,那就不合适了。像用户贡献的内容等。
但是如果你有一个小报纸网站,网上的文章不多,你可以完美地将缩略图存储在数据库中,并在复制奴隶上构建你的系统。
然而......老实说:将您的图像存储在亚马逊s3上。简单的api,冗余,高可用性和负载均衡的存储,便宜。
答案 6 :(得分:0)
我建议将它们保存为常规静态文件。然后将其文件名存储在数据库中。您可以提取匹配的文件名和file_get_contents图像数据或直接链接到真实图像文件。
不要将图像数据本身存储在数据库中。