我正在尝试在浏览器上显示我的图像(以base64编码)。
这就是我的尝试:
{{$projects}}
<hr>
@foreach ($projects as $project)
@if ($project['name'] != null)
<p>Project {{ $project['name'] }}</p>
<img src="data:image/{{$project['image_type']}};base64,{{$project['image']}}" alt="Project picture" >
@endif
@endforeach
在浏览器链接上显示如下:http://i.imgur.com/U1YUcSo.png
不幸的是,这没有成功。
显示图像之前。我使用以下代码将图像上传到我的数据库:
public function store(Request $request)
{
if($request['file'] != null) {
$file = $request['file'];
$fileName = $file->getClientOriginalName();
$imageType = pathinfo($fileName, PATHINFO_EXTENSION);
} else {
$fileName = null;
$imageType = null;
}
Project::create([
'name' => $request['name'],
'content' => $request['content'],
'image' => base64_encode($fileName),
'image_type' => $imageType,
]);
return redirect('/projects');
}
有人可以告诉我我做错了吗?
答案 0 :(得分:1)
似乎您在数据库中编码文件名而不是文件内容。
了解http://php.net/manual/pt_BR/function.file-get-contents.php
(...)
'image' => base64_encode(file_get_contents($fileName)),
答案 1 :(得分:1)
Niloct是对的。
Insted of
base64_encode($fileName);
你必须使用
base64_encode(file_get_contents($fileName));