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', ], // 更多的磁盘配置信息 ], ];

