Как сохранить изображение в кодировке base64 внутри laravel, используя метод storeas ()?

В конце своей мудрости я пытаюсь использовать метод StoreAs в Laravel для хранения изображения, которое не было прикреплено обработчиком html-файла и было отправлено через запрос типа «Файл».

Я создал обрезанное изображение, используя croppie: https://foliotek.github.io/Croppie/

Тем не менее, Croppie, кажется, не дает мне простого решения прикрепить обрезанное изображение к стандартному обработчику файлов HTML. Поэтому я решил прикрепить информацию об изображении и имя изображения к скрытому элементу файла и отправить его вместе с моим запросом на публикацию в мой экземпляр laravel. Однако теперь моя проблема заключается в том, что я хочу использовать метод StoreAs, поскольку он позволяет мне прикреплять свое изображение к определенному URL-адресу, который я могу найти, что я считаю очень полезным, при извлечении большого количества изображений.

Метод StoreAs () в Laravel, по-видимому, позволяет использовать только объект типа UploadedFile, который основан на классе Symfony \ Component \ HttpFoundation \ File \ UploadedFile. Этот объект UploadedFile, очевидно, отправляется автоматически вместе с файлом при использовании обработчика файлов в html.

У меня есть изображение в кодировке base64, похожее на это: data: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAgAElEQVR4nOy9d3RUZ5ruuyvnnJNyzpEgcjkkPHTKHTKTKHBT3T3TBT3TBTKHBT3TBT3TBT3TBT3TBT3TBT2
и имя изображения.

Я обнаружил, что могу сам создать объект UploadedFile в Laravel, но мне трудно понять, как мне создать этот UploadedFile, а затем использовать метод StoreAs (), чтобы связать его с сгенерированным URL-адресом.

Я нашел эту ссылку здесь: Laravel — путь к файлу к экземпляру UploadedFile
И вот этот: https://gist.github.com/m241802/0b5d0a98318304ff08cf

Но я все еще не до конца понимаю, как я могу создать объект UploadedFile из имеющегося у меня изображения и имени изображения.

У кого-нибудь есть идеи, как этого добиться? Или даже можете предложить более элегантное решение моей проблемы ?? Возможно, у кого-то есть лучшее решение о том, как я могу отправить объект File в запросе post после использования библиотеки croppie?

Заранее благодарю за любую помощь!

2

Решение

Попробуй это :

$image = $request->input('image'); // your base64 encoded
$image = str_replace('data:image/png;base64,', '', $image);
$image = str_replace(' ', '+', $image);
$imageName = 'test.png';
\File::put(storage_path(). '/' . $imageName, base64_decode($image));
3

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

Других решений пока нет …