Как оптимизировать декодированное изображение base64 с помощью оптимизатора изображений Laravel?

#laravel #base64 #image-optimization

Вопрос:

На переднем конце я загружаю изображение, а затем обрезаю его с помощью cropperjs. После того, как он обрезан, я сохраняю строку base64 в скрытом поле ввода, а затем передаю ее в Laravel, где я пишу некоторый код для кодирования файла base64_decode и, наконец, сохраняю его в папке хранения.

Следующий код работает идеально. MyController.php:

 if (isset($request['pictureFR']) amp;amp; $request['pictureFR'] !== '') {
                if($request['pictureFR'] != NULL) {
                    $base64_image = $request['pictureFR']; // your base64 encoded
                    @list ($type, $file_data) = explode(';', $base64_image);
                    @list (, $file_data) = explode(',', $file_data);
                    $imageName = 'secret-filenames-go-here' . time() . '.png';
                    Storage::put('public/event/' . $imageName, base64_decode($file_data));
                }

            }
 

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

 file_exists() expects parameter 1 to be a valid path, string given
 

с помощью приведенного ниже кода:

 if (isset($request['pictureFR']) amp;amp; $request['pictureFR'] !== '') {
                if($request['pictureFR'] != NULL) {
                    $base64_image = $request['pictureFR']; // your base64 encoded
                    @list ($type, $file_data) = explode(';', $base64_image);
                    @list (, $file_data) = explode(',', $file_data);
                    $imageName = 'secret-filenames-go-here' . time() . '.png';
                    $optimizedImage = ImageOptimizer::optimize(base64_decode($file_data));
                    Storage::put('public/event/' . $imageName, $optimizedImage);
                }

            }
 

Есть какие-нибудь идеи?