【问题标题】:How to select BLOB files in PHP using Laravel如何使用 Laravel 在 PHP 中选择 BLOB 文件
【发布时间】:2018-05-25 03:38:03
【问题描述】:

我有 50 张图像存储在 SQL 数据库 (BLOB) 中。如何选择它并将其显示为视图中的图像。

我尝试过类似的方法

Route::get('/', function () {

    $pics = DB::table('Employees')->get();
    return $pics; //just to test if i get something return from the db
    //return view('welcome', compact("pics"));

});

当我返回数据库查询时,我得到一个非常长的图像字符串。

FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE1031D687....

在我看来,我已经用base64_encode 尝试过这样的事情:

  @foreach ($pics as $pic)

        <img src="base64_encode({{ $pic->image }})" />

  @endforeach

不幸的是,这不起作用,我不知道如何对其进行编码并将其作为img 属性src 的路径返回。

【问题讨论】:

  • 你能显示你如何保存图像的代码吗?

标签: php laravel-5.4


【解决方案1】:

您需要将十六进制值转换为字符串,然后通过base64对字符串进行编码。

将十六进制值转换为字符串:

$string = pack('H*', 'FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE1031D687');

然后对字符串进行base64编码

$string = base64_encode($string);

然后你可以使用Data URI schema来显示图片。基于file signatures,您给出的十六进制字符串是jpg图像。您还应该相应地更改 mime 类型。

<img src="data:image/jpg;base64,<?=$string?>" />

【讨论】:

    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多