当我尝试从数据库中检索图像时出现此错误,我想要做的只是在我的视图中打印出签名图像,任何人都可以帮忙吗?我听说文件可能已损坏或某些东西或它也无法解码base64但我看到它们使用编码吗? (对于该怎么做很困惑)提前致谢
我通过用户输入将我的图像保存到数据库中,并以二进制格式将其放入数据库中。 ($ table-> binary('signature');)
控制器
--ignored
Show ignored files as well.
view.blade.php
public function getInfo($id) {
$data = personal_info::where('id',$id)->get();
$imageDataEncoded = DB::table('personal_infos')->select('signature')->get(); //get image
$imageData = base64_decode($imageDataEncoded);
$source = imagecreatefromstring($imageData);
$imageSave = imagejpeg($source);
imagedestroy($source);
return view('test',compact('data','imageSave'));
}
如果我在控制器中删除了整个部分并在view.blade.php中使用了它,我就不会收到错误但我知道这是错误的,因为我应该把它转换为我有的图像没有。我从其他论坛上看到我需要图像的路径,但我的图像存储在数据库中,所以我该怎么办?
控制器(如果删除)
@foreach ($data as $object)
<b>Signature: </b>{{$object->$imageSave}}<br><br>
view.blade.php
$imageDataEncoded = DB::table('personal_infos')->select('signature')->get(); //get image
$imageData = base64_decode($imageDataEncoded);
$source = imagecreatefromstring($imageData);
$imageSave = imagejpeg($source);
imagedestroy($source);
使用此方式从用户获取签名图像: page1.blade.php
@foreach ($data as $object)
<b>Signature: </b>{{base64_decode($object->$imageSave)}}<br><br>
SignatureController
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Signature Pad</title>
</head>
<body>
{!! Form::open(['url' => 'page1/submit']) !!}
<canvas id="signature-canvas" style="width:500px;height:200px;max-width:100%;border:1px #CCC solid;"></canvas>
<div id="signature-message"></div>
<div id="signature-buttons">
<input type="button" id="clear-signature-btn" value="Clear">
<input type="button" id="save-signature-btn" value="Save">
</div>
<input type="hidden" name="signature" id="signature-data" value="">
答案 0 :(得分:0)
如果您使用以下内容,则视图中的foreach不是必需的:
$data = personal_info::find($id);
而不是
$data = personal_info::where('id',$id)->get();
以下示例承担工作
你不需要你可以使用base_64字符串的路径,如果他正确格式化
<img width="16" height="16" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYY
DJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2CmV1unU4zPgISg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW
7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQPbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReAS
FZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7">
第一个&#34; data:image/gif;base64,
&#34;可能是nessesary但可能不是
试试这个:
Signature: <img width="16" height="16" src="{{base64_encode($data->signature)}}">
编辑:您应该将文件保存在磁盘上而不是数据库中