Как сохранить изображение base64 с помощью Файловая система Laravel (Файловое хранилище) методы?
Например, я могу декодировать изображение base64 следующим образом:
base64_decode($encoded_image);
но все методы хранения файлов Laravel могут принимать либо Illuminate\Http\File
или же Illuminate\Http\UploadedFile
пример.
Так что, я думаю, мне нужно преобразовать изображение base64 (или декодированное изображение base64) в Illuminate\Http\File
или же Illuminate\Http\UploadedFile
, но как?
Просто используйте put
для хранения закодированного содержимого:
Storage::put('file.jpg', $encoded_image);
Все, что он делает, это упаковка file_put_contents
,
Затем, чтобы прочитать его обратно:
$data = base64_decode(Storage::get('file.jpg'));
Который, вы догадываетесь, является оберткой file_get_contents
,
Вы можете загрузить свое изображение base64, используя Laravel File Storage, как это
$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));
Надеюсь, это поможет вам