Если вы хотите, чтобы Laravel автоматически управлял потоковой передачей данного файла в ваше хранилище, вы можете использовать метод putFile
или putFileAs
. Этот метод принимает экземпляр Illuminate\Http\File
или Illuminate\Http\UploadedFile
и автоматически передает файл в желаемое место:
use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;
// Automatically generate a unique ID for file name...
Storage::putFile('photos', new File('/path/to/photo'));
// Manually specify a file name...
Storage::putFileAs('photos', new File('/path/to/photo'), 'photo.jpg');
Следует отметить несколько важных моментов, касающихся метода putFile
. Обратите внимание, что мы указали только имя каталога, а не имя файла. По умолчанию метод putFile
генерирует уникальный идентификатор, который будет служить именем файла. Итак, в вашем случае вам не нужно использовать $image->hasName()
.
putFile()
также возвращает путь, по которому был сохранен файл. Итак ...
$path = Storage::putFile('photos', new File('/path/to/photo'));
//To delete it
Storage::delete($path);