Хранение файлов Laravel: Как сохранить (декодированное) изображение base64?

Как сохранить изображение base64 с помощью Файловая система Laravel (Файловое хранилище) методы?

Например, я могу декодировать изображение base64 следующим образом:

base64_decode($encoded_image);

но все методы хранения файлов Laravel могут принимать либо Illuminate\Http\File или же Illuminate\Http\UploadedFile пример.

Так что, я думаю, мне нужно преобразовать изображение base64 (или декодированное изображение base64) в Illuminate\Http\File или же Illuminate\Http\UploadedFile, но как?

0

Решение

Просто используйте put для хранения закодированного содержимого:

Storage::put('file.jpg', $encoded_image);

Все, что он делает, это упаковка file_put_contents,

Затем, чтобы прочитать его обратно:

$data = base64_decode(Storage::get('file.jpg'));

Который, вы догадываетесь, является оберткой file_get_contents,

0

Другие решения

Вы можете загрузить свое изображение 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));

Надеюсь, это поможет вам

0

По вопросам рекламы [email protected]