自用于 laravel8
static function upload(Request $request,$key,$extension_arr=array(),$path='',$size=2097152) {
$file = $request->file($key);
if($file === null) return ['status' => -1,'msg' => '没获取到文件'];
$extension = $file->extension();
if($extension_arr) if(!in_array($extension,$extension_arr)) return ['status' => -1,'msg' => '文件类型不正确'];
$fileSize = $file->getSize();
if($fileSize > $size) return ['status' => -1,'msg' => '文件不能超过2M'];
$dir = date('Ymd');
$path = $path ?: 'upload';
$save_dir = '../storage/app/public/'.$path.'/'.$dir;
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)) return ['status' => -1,'msg' => '生成路径失败'];
$res = $file->store('public/'.$path.'/'.$dir);
if(!$res) return ['status' => -1,'msg' => '未知错误'];
return ['status' => 1,'msg' => '成功','data'=>str_replace('public/','',$res)];
// 外部访问要建立软连接 命令
// php artisan storage:link
// "/public/storage" = "/storage/app/public"
}
php artisan storage:link