最佳答案
在数据库中存储图像的常用方法是在存储数据之前将图像转换为 base64
数据。这个过程将使尺寸增加33% 。或者,也可以将图像直接存储为 BLOB
; 例如:
$image = new Imagick("image.jpg");
$data = $image->getImageBlob();
$data = $mysqli->real_escape_string($data);
$mysqli->query("INSERT INTO images (data) VALUES ('$data')");
然后用
<img src="data:image/jpeg;base64,' . base64_encode($data) . '" />
使用后一种方法,我们节省了1/3的存储空间。为什么在 MySQL 数据库中以 base64
的形式存储图像更为常见?
更新: 关于在数据库中存储图像的优缺点有很多争论,大多数人认为这不是一种实用的方法。无论如何,这里我假设我们在数据库中存储图像,并讨论这样做的最佳方法。