Laravel Nova:如何从二进制字符串显示图像?

问题描述 投票:1回答:2

我将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 Nova产生了:

<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/and舍入类。

如何防止它添加?

laravel laravel-nova
2个回答
1
投票

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中的rounded-full中删除field.thumbnailUrl?t("img",{staticClass:"rounded-full w-8 h-8",


0
投票

覆盖thumbnailpreview的图片网址

请尝试以下代码段

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);
    }),
© www.soinside.com 2019 - 2024. All rights reserved.