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());
→ Ссылка