Thinkphp6 中上传文件,验证文件大小及后缀名官方文档错误修改
官方文档示例:
上传验证
支持使用验证类对上传文件的验证,包括文件大小、文件类型和后缀:
public function upload(){ // 获取表单上传文件 $files = request()->file(); try { validate(['image'=>'filesize:10240|fileExt:jpg|image:200,200,jpg']) ->check($files); $savename = []; foreach($files as $file) { $savename[] = \think\facade\Filesystem::putFile( 'topic', $file); } } catch (\think\exception\ValidateException $e) { echo $e->getMessage(); } }
其实直接使用:validate(['image'=>'filesize:10240|fileExt:jpg|image:200,200,jpg'])->check($files); 是错误的。无论你如何修改规则都是正确的。
这里我们需要修改成:check我们需要传入数组形式
validate(['image'=>'filesize:10240|fileExt:jpg|image:200,200,jpg'])->check(['image'=>$files]);
或者我们不使用助手函数: