Код функции, которую я использую в своих проектах.
Подразумевается загрузка с помощью AJAX, то сути дела это не меняет
public function uploadGallery(Request $req) {
try {
$files = $req->file('photo');
foreach ($files as $file) {
$tmp1 = md5(microtime());
$tmp2 = md5(uniqid());
$newName = strtolower(substr(base64_encode($tmp1 . $tmp2), 0, 7)).'.'.$file->getClientOriginalExtension();
//здесь важная поправка куда перемещать - это абсолютный путь
//так что к слову media в моём случае нужно ещё применить функцию base_path или конкотинировать результат функции public_path
$file->move('media', $newName);
//Storage::putFileAs('/public/ //строчка закомментирована, но можно использовать её
}
} catch (\Exception $err) {
//$errorcode = $err->getMessage();
}
}