thinkphp6内置上传类的基本使用
一,使用thinkphp6内置上传类上传文件
//上传接口 public function filef() { //获取上传文件 $file = request()->file('file'); //异常处理 try{ //进行验证 $result = validate(['image'=>'fileSize:10240000|fileExt:jpg,png,git'])->check(['image'=>$file]); //定义文件的上传位置 $savename = Filesystem::disk('public')->putFile( 'topic', $file); //复制到上传位置 $picCover = Filesystem::getDiskConfig('public','url').'/'.str_replace('\\','/',$savename); //进行json格式书写 $arr = array('code'=>0,'message'=>'成功!','data'=>array('url'=>$picCover)); //输出json return json($arr); //异常处理,打印错误 }catch(\think\exception\ValidateException $e){ //进行json格式书写 $arr = array('code'=>1,'message'=>'失败!','data'=>array('url'=>$e->getMessage())); //输出json return json($arr); } }
文件上传位置在:/public/storage/topic/年月日/md5值.png
文件验证:
你可以在config/filesystem.php配置文件中配置上传根目录及上传规则,例如:
return [ 'default' => 'local', 'disks' => [ 'local' => [ 'type' => 'local', 'root' => app()->getRuntimePath() . 'storage', ], 'public' => [ 'type' => 'local', 'root' => app()->getRootPath() . 'public/storage', 'url' => '/storage', 'visibility' => 'public', ], // 更多的磁盘配置信息 ], ];