Общим методом хранения изображений в базе данных является преобразование изображения в данные 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 место для хранения. Почему чаще всего хранятся изображения в base64
в базах данных MySQL?
ОБНОВЛЕНИЕ: Есть много дискуссий о преимуществах и недостатках хранения изображений в базах данных, и большинство людей считают, что это не практический подход. В любом случае, здесь я предполагаю, что мы храним изображение в базе данных и обсуждаем лучший способ для этого.