显示BLOB图片数据查看

目标:我正在尝试将图像显示到我的 Laravel 7 视图中,直接从数据库中检索。

在我的 MySQL WORKBENCH 中:

http://img1.mukewang.com/638ab5870001268809050051.jpg

过程:

  1. 正如您在我的控制器JobsController中看到的那样,我将从数据库中选择并检索由 标识的图像jobs $job_name

http://img1.mukewang.com/638ab5930001146203900109.jpg

正如您在这里看到的,我尝试了dd($job_name),我们可以看到$job_image变量中的 BLOB 数据。我会通过这个Collection对象来直接查看和显示它。

http://img4.mukewang.com/638ab59e00019d0d13610171.jpg

大多数 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}}"/>. 这很愚蠢,src 属性需要一个 PATH。

因此,这些都不会将变量内容转换为图像。请告诉我我在这里缺少什么。


墨色风雨
浏览 194回答 2
2回答

白板的微信

尝试这个$image = 'your_image_blob_name';$imageData = base64_encode(file_get_contents($image));$src = 'data: '.mime_content_type($image).';base64,'.$imageData;echo '<img src="'.$src.'">';

慕斯709654

您快到了。您必须在 src 属性中使用 base64 字符串。确保在开头还包括数据类型和其他相关信息。请参阅:如何在 HTML 中显示 Base64 图像?
打开App,查看更多内容
随时随地看视频慕课网APP