Создание изображения из BLOB-объекта - PullRequest
1 голос
/ 12 июля 2011

Я хотел бы сохранить некоторые фотографии в MySql в виде больших двоичных объектов и хотел бы иметь возможность извлекать двоичный файл и воссоздавать изображения из него для отображения пользователю.

Все, что я ищу, использует комбинацию file_get_contents, кодировку Base 64 и библиотеку GD. Но каждый пост, с которым я сталкиваюсь, имеет другое требование, чем то, что я пытаюсь сделать, поэтому примеры кода не так полезны.

Может кто-нибудь сказать мне, какие вызовы функций мне нужно сделать, или дать мне порядок операций для того, что нужно сделать. Скажем, у меня есть следующий код:

$someBlob = getImageBlobByImageId(1203);

Скажите, что этот BLOB-объект представляет собой изображение с именем "foo.jpg". Как мне перейти от $someBlob к foo.jpg, чтобы я мог поместить его в HTML, как

<img src="<?php echo $fooImage; ?>"/>

Любые намеки или подталкивания в правильном направлении приветствуются; -)

1 Ответ

3 голосов
/ 12 июля 2011

Ваш HTML должен указывать на PHP-скрипт, который извлекает BLOB-объект и отправляет его обратно по запросу в виде изображения.

Например, в вашем HTML:

<img src="getImage.php?id=1203" />

А затем для getImage.php:

<?php
    $id = $_REQUEST['id'];
    header("Content-type: image/jpg");
    echo getImageBlobByImageId($id);
    exit();
?>

Убедитесь, что сценарий не выводит никакого содержимого, кроме строки заголовка и данных BLOB-объектов, иначе вы не получите желаемого.

...