我正在使用 laravel 并且使用 MySQL 数据库。
我将图像作为 blob 保存到数据库中,如下所示:
$path = $data->file;
$image = file_get_contents($path);
$base64 = base64_encode($image);
DB::connection('mysql_live')->table('users_comments_files')->insert(
['comment_id' => $data->comment_id, 'filename' => 'TEST', 'date_added' => date("Y-m-d H:i:s"), 'date_modified' => date("Y-m-d H:i:s"),
'filetype' => 'image/png', 'file' => $base64]
);
文件列中有一些数据,所以我认为它有效。
现在我想在 iframe 或 atm 中显示图像。创建一个网址。
这是我如何尝试在视图中创建/显示 blob 的相关部分:
return '<img data="data:' . $result->filetype . ';base64,
' . $result->file . '" type="' . $result->filetype . '"
class="object-elem"></img>
我尝试像这样显示它们:
$result = DB::connection('mysql_live')->table('users_comments_files')->where('id', $element_id)->first();
$object_type = 'object';
if (str_contains($result->filetype, 'image')) {
$object_type = 'img';
}
return '<' . $object_type . ' data="data:' . $result->filetype . ';base64,
' . $result->file . '" type="' . $result->filetype . '" class="object-elem"></' . $object_type . '>
<style>
body {
background-color:#3a3a3a;
}
.object-elem {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
min-width: 100px;
min-height: 100px;
}
</style>';
我没有收到任何错误,但结果总是一个白色方块/立方体:
猛跑小猪