У меня есть jpg blob, который был сохранен во внешней БД, и я хочу показать это как изображение через php. Проблема заключается в том, что когда я устанавливаю Content-Type
в image/jpeg
и выхожу из блоба, я получаю значок сломанного изображения при просмотре на него.
Я попытался сделать файл с нуля через возвышенное, и это работает, когда я сохраняю его как шестнадцатеричный файл, поэтому я знаю, что данные действительны.
Я попытался создать скрипт для создания файла, но он устанавливает charset=us-ascii
поэтому он не будет рассматриваться как файл изображения.
Есть ли у кого-нибудь опыт работы с двоичными файлами с необработанным изображением? кто-нибудь знает, как я могу отображать изображение или даже сохранять его в файле?
Заранее спасибо.
PS Я бы предоставил двоичный файл, но его слишком большой, чтобы его можно было использовать здесь.
EDIT: (добавлен код)
<?php header('Content-Type: image/jpeg;'); $data = 'some long string of hex'; // tried echoing it directly.. echo $data; // and writing to a file... file_put_contents('test.jpg', $data); ?>
После продолжения исследования я нашел этот пост PHP: создать файл из строки HEX
Со следующим кодом я исправил проблему.
<?php header('Content-Type: image/jpeg;'); $data = 'The hex data'; $data = pack('H*',$data); $im = imagecreatefromstring($data); imagejpeg($im); ?>
Попробуйте $im = imagecreatefromstring($data);
Вывести его по imagejpeg($im);