Я сохранил свои изображения в (средних) BLOB-полях и хочу получить их, встроенные в мои PHP-созданные веб-страницы.
Когда я тестирую извлечение сохраненных изображений, используя
header('Content-type: ' . $image['mime_type']); echo $image['file_data'];
все выглядит просто отлично.
Тем не менее, я еще не нашел способ получить изображение (изображения) чисто в середине моих документов. Например, используя
$image = $row['file_data']; echo '<img src="data:image/jpeg;base64,'.$image['file_data'].'" alt="photo"><br>';
…или…
$im = imageCreateFromString($image);
Я просто заканчиваю кучей шестнадцатеричного мусора на экране.
Я интимно сохранил изображения, используя:
ob_start(); imagejpeg($resizedImage, null, 100); $content = ob_get_contents(); ob_end_clean(); $sql = sprintf( "insert into images (filename, mime_type, file_size, file_data, event_id) values ('%s', '%s', %d, '%s',%d)", mysql_real_escape_string($fileName), mysql_real_escape_string($mimeType), $imageSize, mysql_real_escape_string($content), $eventID ); $result = $cn->query($sql);
сob_start(); imagejpeg($resizedImage, null, 100); $content = ob_get_contents(); ob_end_clean(); $sql = sprintf( "insert into images (filename, mime_type, file_size, file_data, event_id) values ('%s', '%s', %d, '%s',%d)", mysql_real_escape_string($fileName), mysql_real_escape_string($mimeType), $imageSize, mysql_real_escape_string($content), $eventID ); $result = $cn->query($sql);
Кто-нибудь ПОЖАЛУЙСТА, у вас есть фрагмент рабочего кода, чтобы успешно отображать сохраненный .jpg mid-file в выходе PHP?
echo '<img src="data:image/jpeg;base64,'.base64_encode($image['file_data']).'" alt="photo"><br>';
Однако помните, что старые версии IE не поддерживают такие встроенные изображения! Кроме того, браузер не может кэшировать такое изображение, кроме как вместе с его содержащей HTML-страницей.
Вы должны создать какой-то «сервер изображений». Вы уже близко к этому. Например, создайте что-то вроде image.php, которое получит имя изображения и сгенерирует его на лету. Так, например, скажем, вы хотите получить изображение somePic.jpg. Вы можете получить его через:
image.php? имя = somePic.jpg
<?php header('Content-type: ' . $image['mime_type']); echo $image['file_data']; ?>
Ваш тег:
<img src='image.php?name=somePic.jpg' />
Или более общий:
echo "<img src='image.php?name={$image['filename']}' />"
Почему бы просто не вызвать вашу тестовую страницу image.php
, а затем вызвать ее из браузера на отображаемой странице:
<img src="image.php?imageid=123" alt="photo" />