Comment stocker une image base64 en utilisant les méthodes Laravel's filesytem (File Storage) ?
Par exemple, je peux décoder une image base64 comme ceci:
base64_decode($encoded_image);
mais toutes les méthodes de Laravel pour le stockage de fichiers peuvent accepter soit un Illuminate\Http\File
ou Illuminate\Http\UploadedFile
exemple.
Donc je suppose que je devrais convertir l'image base64 (ou l'image base64 décodée) en Illuminate\Http\File
ou Illuminate\Http\UploadedFile
, mais comment?
Utilisez simplement put
pour stocker le contenu encodé:
Storage::put('file.jpg', $encoded_image);
Tout ce qu'il fait est d'envelopper file_put_contents
.
Puis pour le relire:
$data = base64_decode(Storage::get('file.jpg'));
Ce qui, vous le devinez, enveloppe file_get_contents
.
Vous pouvez télécharger votre image base64 en utilisant laravel File Storage comme ceci
$base64_image = $request->input('base64_image'); // your base64 encoded
@list($type, $file_data) = explode(';', $base64_image);
@list(, $file_data) = explode(',', $file_data);
$imageName = str_random(10).'.'.'png';
Storage::disk('local')->put($imageName, base64_decode($file_data));
J'espère que cela vous aidera