Je veux convertir une image en base 64 avec Laravel. J'obtiens l'image à partir d'un formulaire. J'ai essayé ceci dans mon contrôleur:
public function newEvent(Request $request){
$parametre =$request->all();
if ($request->hasFile('image')) {
if($request->file('image')->isValid()) {
try {
$file = $request->file('image');
$image = base64_encode($file);
echo $image;
} catch (FileNotFoundException $e) {
echo "catch";
}
}
}
Je reçois ceci uniquement:
L3RtcC9waHBya0NqQlQ =
La $request->file()
de Laravel ne renvoie pas le contenu réel du fichier. Elle renvoie une instance de la classe UploadedFile
-.
Vous devez charger le fichier réel pour pouvoir le convertir:
$image = base64_encode(file_get_contents($request->file('image')->path()));
Cela a fonctionné pour moi de la manière suivante:
$image = base64_encode(file_get_contents($request->file('image')));
J'ai éliminé cette partie ->path();
$image = base64_encode(file_get_contents($request->file('image')));
Fonctionne aussi pour moi.