Отображение данных изображения BLOB для просмотра - PullRequest
0 голосов
/ 03 апреля 2020

ЦЕЛЬ: Я пытаюсь отобразить изображение в моем Laravel 7 представлении, полученном непосредственно из базы данных.

В моем MySQL РАБОЧЕМ СТЕНДЕ: enter image description here

ПРОЦЕСС:

  1. Как вы можете видеть в моем контроллере JobsController , я выберу и получу изображение из базы данных, обозначенное jobs $job_name.

enter image description here

Как вы можете видеть здесь, я попытался dd($job_name), и мы можем видеть, что данные BLOB в переменной $job_image , Я передам этот объект Collection для непосредственного просмотра и отображения.

enter image description here

Большинство вопросов SO относятся к отображению изображения с использованием <img src="myFileName"/>. Проблема в том, что я не храню его в виде файла, а просто извлекаю и отображаю его напрямую. Я просто хочу сбросить все переменные в мой файл вида, как и другие детали работы.

Решения пробовали в моем файле просмотра.

  1. <img>{{ base64_encode($job_details->job_image) }}</img>. Не смогли. Вывод « / 9j / 4AAQSkZJRgABAQ ».

  2. <img>{{ base64_decode($job_details->job_image) }}</img>. Я не очень понимаю, что происходит при кодировании и декодировании, когда данные хранятся и извлекаются из базы данных и из нее. Здесь я расшифровал переменную. Нет вывода.

  3. <img src="{{ $job_details->job_image}}"/>. Это глупо, атрибут sr c ожидает PATH.

Таким образом, ни один из них не превратил бы переменное содержимое в изображение. Пожалуйста, скажите мне, что мне здесь не хватает.

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Попробуйте это

$image = 'your_image_blob_name';

$imageData = base64_encode(file_get_contents($image));

$src = 'data: '.mime_content_type($image).';base64,'.$imageData;

echo '<img src="'.$src.'">';
1 голос
/ 03 апреля 2020

Ты почти у цели. Вы должны использовать строку base64 в атрибуте sr c. Убедитесь, что вы также включаете тип данных и другую соответствующую информацию в начале. См .: Как отобразить изображения Base64 в HTML?

...