Je reçois cette erreur lorsque j'essaie de récupérer une image de la base de données, tout ce que je voulais faire est d'imprimer l'image de la signature à mon avis, peut quelqu'un vous aide? J'ai entendu que le fichier pourrait être corrompu ou quelque chose ou encore il ne pouvait pas décoder base64 mais je vois qu'ils utilisent encoder dessus? (assez confus sur ce qu'il faut faire) Merci d'avanceErreur: imagecreatefromstring(): Les données ne sont pas dans un format reconnu laravel
J'ai enregistré mon image dans la base de données par l'intermédiaire de l'entrée de l'utilisateur et le mettre dans la base de données au format binaire. (Table- $> binaire ('signature');)
Contrôleur
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>
Si je retire toute cette partie au contrôleur et juste utilisé ce Dans le view.blade.php, je ne vais pas avoir d'erreur mais je sais que c'est faux car je suis supposé le convertir en une image que j'ai faite. J'ai vu d'autres forums que j'avais besoin du chemin de l'image mais que mon image est stockée dans la base de données, alors que dois-je faire?
Controller (si remove)
$imageDataEncoded = DB::table('personal_infos')->select('signature')->get(); //get image
$imageData = base64_decode($imageDataEncoded);
$source = imagecreatefromstring($imageData);
$imageSave = imagejpeg($source);
imagedestroy($source);
view.blade.php
@foreach ($data as $object)
<b>Signature: </b>{{base64_decode($object->$imageSave)}}<br><br>
Obtenir l'image de la signature de l'utilisateur en utilisant ceci: page1.blade.php
<!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="">
SignatureController
public function submit(Request $request)
{
$data = array();
$data['signature'] = $request->signature;
Obtenir maintenant: (pourquoi je reçois ce?)
Copie possible de [imagecreatefromstring(): Les données ne sont pas dans un format reconnu dans] (https: // stackoverflow.com/questions/42228473/imagecreatefrom-data-is-not-in-a-reconnu-format-in) –
Il est en quelque sorte similaire mais j'avais essayé de le réparer en utilisant la réponse fournie. J'ai mis à jour mes questions pourriez-vous m'aider à jeter un coup d'oeil? @peterHaberkorn – blastme
montre le code source de l'élément rendu en frontend et quel est le format de base que l'utilisateur a uploadé –