为了账号安全,请及时绑定邮箱和手机立即绑定

请问我可以用MySQL存储图像吗?

请问我可以用MySQL存储图像吗?

月关宝盒 2019-10-20 16:12:10
我可以用MySQL存储图像吗?我正在开发一个网站,用户上传他们的图片作为注册的一部分。我希望每个图片都应该有一个用PHP创建的拇指(这并不难)。我想保存数据库中的大拇指(因为它们很小),我使用MySQL。(我不想将大拇指保存为驱动器上的物理文件。)MySQL允许保存和检索图像数据吗?如果它不支持图像数据,有免费的数据库吗?如果能提供链接,我会很高兴的。谢谢。
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

是的,您可以将图像存储在数据库中,但在我看来,这是不可取的,也不是一般的做法。

一般做法是将图像存储在文件系统的目录中,并在数据库中存储对图像的引用。例如,图像的路径、图像名称等。或者,您甚至可以将图像存储在内容传递网络(CDN)或跨越大量物理域的众多主机上,并将访问这些资源的引用存储在数据库中。

图像可以变得相当大,大于1MB。因此,在数据库中存储图像可能会给数据库和数据库与Web服务器之间的网络带来不必要的负载,如果它们位于不同的主机上。

我曾在初创公司、中型公司和拥有400多名员工的大型科技公司工作过。在我13年的专业经验中,我从未见过任何人将图像存储在数据库中。我这样说是为了支持这一说法,这是一种罕见的做法。



查看完整回答
反对 回复 2019-10-21
?
千巷猫影

TA贡献1829条经验 获得超7个赞

您需要保存为BLOB,MySQL中的LONGBLOB数据类型可以工作。

例:

CREATE TABLE 'test'.'pic' (
    'idpic' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    'caption' VARCHAR(45) NOT NULL,
    'img' LONGBLOB NOT NULL,
  PRIMARY KEY ('idpic'))

正如其他人所说,这是一个不好的做法,但它是可以做到的。不过,不确定这段代码是否能很好地扩展。



查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 466 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信