Laravel Nova:如何显示二进制字符串中的图像?
Laravel Nova: how to display image from binary string?
我将 PNG 的二进制内容保存在数据库中。
我想在页面上显示这个 PNG,而不需要在磁盘上临时保存文件。
我认为需要生成像 <img src="data:image/png;base64,......
这样的 img 标签
但是我不明白怎么实现比较好,以什么类型的字段为基础。
Image::make('Image')->displayUsing(function($item) {
$mime_type = 'image/png';
return 'data: ' . $mime_type . ';base64,' . base64_encode($item);
}),
但 Laravel 新星生成:
<img src="http://172.18.0.3/storage/data: image/png;base64,......" class="rounded-full w-8 h-8" style="object-fit: cover;">
添加了不必要的 http://172.18.0.3/storage/
并四舍五入 class。
如何防止添加?
覆盖图像 thumbnail
和 preview
url
试试下面的代码片段
Image::make('Image')->thumbnail(function($value, $disk) {
return 'data: image/png;base64,' . base64_encode($value);
})->preview(function($value, $disk) {
return 'data: image/png;base64,' . base64_encode($value);
}),
Laravel Nova 2.0.1 的工作代码:
Image::make('QRCode', 'qrcode')->thumbnail(function($value, $disk) {
return 'data: image/png;base64,' . $value;
})->preview(function($value, $disk) {
return 'data: image/png;base64,' . $value;
})->displayUsing(function($value) {
return base64_encode($value);})
还需要从文件 public\vendor\nova\app.js
中的 field.thumbnailUrl?t("img",{staticClass:"rounded-full w-8 h-8",
中删除 rounded-full
我将 PNG 的二进制内容保存在数据库中。
我想在页面上显示这个 PNG,而不需要在磁盘上临时保存文件。
我认为需要生成像 <img src="data:image/png;base64,......
但是我不明白怎么实现比较好,以什么类型的字段为基础。
Image::make('Image')->displayUsing(function($item) {
$mime_type = 'image/png';
return 'data: ' . $mime_type . ';base64,' . base64_encode($item);
}),
但 Laravel 新星生成:
<img src="http://172.18.0.3/storage/data: image/png;base64,......" class="rounded-full w-8 h-8" style="object-fit: cover;">
添加了不必要的 http://172.18.0.3/storage/
并四舍五入 class。
如何防止添加?
覆盖图像 thumbnail
和 preview
url
试试下面的代码片段
Image::make('Image')->thumbnail(function($value, $disk) {
return 'data: image/png;base64,' . base64_encode($value);
})->preview(function($value, $disk) {
return 'data: image/png;base64,' . base64_encode($value);
}),
Laravel Nova 2.0.1 的工作代码:
Image::make('QRCode', 'qrcode')->thumbnail(function($value, $disk) {
return 'data: image/png;base64,' . $value;
})->preview(function($value, $disk) {
return 'data: image/png;base64,' . $value;
})->displayUsing(function($value) {
return base64_encode($value);})
还需要从文件 public\vendor\nova\app.js
中的field.thumbnailUrl?t("img",{staticClass:"rounded-full w-8 h-8",
中删除 rounded-full