вот мой код для отображения изображения, хранящегося на странице GridFS на HTML.Есть ли способ отображения изображений из GridFS, а не кодировки base64 в теге html image
$conn = new MongoClient('SHLY_DBSERVER');
$db = $conn->newdb;
$gridFS = $db->getGridFS('productImages');
$image = $gridFS->find();
$im_array=iterator_to_array($image);
return $im_array;
пропусканием $ im_array к виду ..
foreach ($im_array as $key => $value)
{
$imageFile = $value->getBytes();
$img=base64_encode($imageFile); ?>
<img style="width:300px;margin-left: 5em" class="img-responsive" src="data:image/jpg;charset=utf8;base64,<?php echo $img ?>"/><br>
}
это хорошая практика для отображения изображений обычного веб-страницы? Должен ли я пойти на хранение файловой системы?
Направьте свой тег изображения на php-скрипт (используя src) и передайте тот файл, который вы хотите, через $ _GET. Этот скрипт php считывает данные изображения из сетки FS, выводит правильный заголовок и отправляет необработанные двоичные данные для изображения. Результат - это больше веб-запросов, но без увеличения размера кодированных данных base64. Вы также можете настроить скрипт php на соответствующие заголовки для кэширования. –
Можете ли вы показать мне какой-то код для понимания? –
http://stackoverflow.com/questions/7793009/how-to-retrieve-images-from-mysql-database-and-display-in-an-html-tag, который показывает, как это сделать с помощью mysql, просто замените выбор из mysql db для извлечения из gridfs. Это по сути то же самое. –