#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);
}
}
Есть какие-нибудь идеи?