猿问

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

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

月关宝盒
浏览 467回答 3
3回答

波斯汪

是的,您可以将图像存储在数据库中,但在我看来,这是不可取的,也不是一般的做法。一般做法是将图像存储在文件系统的目录中,并在数据库中存储对图像的引用。例如,图像的路径、图像名称等。或者,您甚至可以将图像存储在内容传递网络(CDN)或跨越大量物理域的众多主机上,并将访问这些资源的引用存储在数据库中。图像可以变得相当大,大于1MB。因此,在数据库中存储图像可能会给数据库和数据库与Web服务器之间的网络带来不必要的负载,如果它们位于不同的主机上。我曾在初创公司、中型公司和拥有400多名员工的大型科技公司工作过。在我13年的专业经验中,我从未见过任何人将图像存储在数据库中。我这样说是为了支持这一说法,这是一种罕见的做法。

千巷猫影

您需要保存为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'))正如其他人所说,这是一个不好的做法,但它是可以做到的。不过,不确定这段代码是否能很好地扩展。
随时随地看视频慕课网APP

相关分类

MySQL
我要回答