Laravel + Intervention Image. Как изменить размер и сохранить?
Имеется диск:
'upload' => [
'driver' => 'local',
'root' => storage_path('app/public/upload'),
'url' => env('APP_URL') . '/storage/upload',
'visibility' => 'public'
],
В контроллере получаю файл, меняю размер и сохраняю:
$file = $request->file('file');
$path = $file->hashName('public/upload');
$image = Image::make($file);
$image->fit(300);
Storage::put($path, (string) $image->encode());
Но хотелось бы использовать синтаксис сохранения подобный следующему
Storage::disk('upload')->put(false, $request->file('file'))
То есть использовать Storage::disk('upload') для выбора директории, или что-то похожее.
Главная цель - добиться сохранения файла с уникальным именем и при этом не вводить директорию вручную.
Ответы (1 шт):
Автор решения: pavel
→ Ссылка
решил следующим образом
// получаем файл
$file = $request->file('file');
// создаем hash-имя
$path = $file->hashName();
// меняем размер картинки
$image = Image::make($file)->widen(1000, function ($constraint) {
$constraint->upsize();
});
// сохраняем на диск upload
Storage::disk('upload')->put($path, $image->stream());