如何使用* BLOB在Laravel 5.3中显示图像?

时间:2017-01-06 02:51:54

标签: php image file laravel-5 seed

首先,我想知道如何从我的公用文件夹发送图片,我的表格中有imageMEDIUMBLOB名为电影即可。我正在使用mysql_*作为我的数据库连接。

这是我目前的种子:

public function(){
    DB::table('movies')->insert([
            'name' => 'La vida es bella',
            'score' => '0',
            'date' => '1999-2-26',
            'image' => ??????????               
    ]);
}

2 个答案:

答案 0 :(得分:3)

如果您尝试将图像数据输入到MySQL表格,请使用以下代码结构:

DB::table('movies')->insert([
  'image' => file_get_contents( "public/images/image.jpg" )
]);

(我不使用Laravel或您正在使用的连接类型,这就是将*BLOB数据插入数据库的方式。

主要功能是file_get_contents( IMAGE_LOCATION ),它将获取原始图像数据并将其用作blob,如果你想从数据库中取出它,你只需要打包它进入正确的哑剧,就像这样:

$blob = ''; //from database
echo '<img src="data:image/jpeg;base64,'.base64_encode( $blob ).'"/>';

这会将数据转换为DATAURI,您可以阅读here作为快速阅读的文章。

希望这有帮助!

答案 1 :(得分:0)

echo '<img src="data:image/jpeg;base64,'.chunk_split(base64_encode(file_get_contents($_FILES['userImage']['tmp_name']))).'"/>';

尝试使用此代码对我有用,可以直接查看已提交的blob文件,

如果要显示存储在数据库中的Blob图像,请建立一个链接,该链接返回存储在DB中的Blob,然后在该图像的 src 中给出该链接

像这样

<img src="{{url('url_returning_blob_data_from_db')}}" />