是否有一种方法可以直接从Laravel背包CRUD视图中的base64代码渲染图像,而无需将其转换为图像文件?
我这样做的原因是不消耗磁盘空间。我尝试查看文档,但只显示了base64代码的保存。
谢谢。
-编辑-
我的CRUD控制器上已经有以下代码:
$this->crud->addColumn([ // base64_image
'label' => "Signature",
'name' => "signature_data",
'filename' => NULL, // set to null if not needed
'type' => 'base64_image',
'aspect_ratio' => 0, // set to 0 to allow any aspect ratio
'crop' => false, // set to true to allow cropping, false to disable
'src' => NULL, // null to read straight from DB, otherwise set to model accessor function
]);
signature_data
字段设置为LONGBLOB
但是它仅在CRUD视图中显示base64代码:
答案 0 :(得分:0)
尝试更改CRUD视图文件中的签名字段:
<td>
<img src="{{signature field name here}}" width="100" height="100"/>
</td>
答案 1 :(得分:0)
背包(all columns here in docs)中没有默认的base64_image
列类型。因此,背包只将您的列类型视为text
。由于它是“文本”列,因此显示了Blob的前几个字符。
您可以create a custom column type显示来自base64字符串的图像。考虑重新使用image.blade.php
文件-背包确实具有image
列类型,可显示来自URL的图像。
背景:一段时间前,关于base64_image
列类型的讨论–有些建议将其添加到核心(因为这很直观),另一些则反对这样做,因为我们应该可能阻止人们将图像作为base64字符串存储在数据库中。我仍然很伤心,但倾向于拥有它。如果您确实为自己创建了列类型,请考虑与它一起提交PR-这样就可以重新开始讨论,我们可能会将其包含在核心中。