@DragDG

Вывод изображений и видео из mongodb с мощью php?

Добрый день, уважаемые знатоки!
Суть вопроса в следующем.
Есть задача вывести данные (текст, картинки, видео) из базы с помощью php.
Являюсь полным нулем php, посему вопрос:
<?php
	// Config
$dbhost = 'localhost';
$dbname = 'test';

// Connect to test database
$m = new Mongo("mongodb://$dbhost");
$db = $m->$dbname;

// select the collection
$collection = $db->Boroda;

// pull a cursor query
$cursor = $collection->find();
echo $cursor->count() . ' document(s) found. <br/>'; 
foreach ($cursor as $obj) {
echo  $obj['Text0'] . '<br/>';
$count++;
}

$gridFS = $db -> getGridFS();
// Получаем файл по id
$file = $gridFS -> findOne(array('_id' => new MongoId('5706388608baf803e414368d')));
// посылаем пользователю бинарное представление файла
echo $file -> getBytes();
?>

Данный код отлично выводит текст, но фото и видео только бинарно. А нужно что бы фаилами.
Готов отблагодарить!
  • Вопрос задан
  • 500 просмотров
Пригласить эксперта
Ответы на вопрос 3
akubintsev
@akubintsev
Опытный backend разработчик
Зачем вам хранить файлы в БД? Храните ссылки на файлы!
Ответ написан
@lega
Вам нужно указать правильный content-type в header,
Если нужно что-б в браузере выскакивал диалог сохранения файла, тогда нужно указать content-disposition
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
> Бинарно, только файлами.

Добавляете хедер с указанием того что вы отдаете и всё.

На страницу вставляете например
<img src="file.php?id=5706388608baf803e414368d">

Но это конечно так себе вариант.
Лучше сделать какой-нибудь кеш для такого дела, и кешировать на nginx например то что отдали.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы