Я сохранил изображение в столбце BLOB Oracle. Когда я попытался прочитать его, я обнаружил, что какой-то первый символ в строке BLOB является моим типом изображения (например, PNG, но окружен множеством зашифрованных (или двоичных) символов). Это означает, что я также сохранил свой тип изображения. Итак, как это определить по коду PHP?
Это моя первая BLOB-строка:
'�PNG
Как zerkms написал, это часть заголовка формата файла. Он предоставляет метаданные о файле, чтобы программы знали, как с ним работать.
Для получения информации о сохраненном изображении вы можете использовать getimagesizefromstring()
.
Это возвращает массив информации об изображении. Например, мое изображение мини-аватара здесь, на SO (как видно в нижней части этого ответа), когда оно сохранено в виде текстового файла и доступно так:
print_r(getimagesizefromstring(file_get_contents('./image.txt')));
возвращает это:
Array
(
[0] => 32
[1] => 32
[2] => 3
[3] => width="32" height="32"[bits] => 8
[mime] => image/png
)
Как видите, тип изображения доступен через [mime]
ключ.
Обратите внимание, что вам понадобится PHP> = 5.4 для этой функции (что не должно быть проблемой, так как < 5.4 больше не поддерживается).
Других решений пока нет …