Thinkphp6 中上传文件,验证文件大小及后缀名官方文档错误修改

hykeda2年前ThinkPHP2160

官方文档示例:

上传验证

支持使用验证类对上传文件的验证,包括文件大小、文件类型和后缀:

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]);

或者我们不使用助手函数:

6ceab4c733618e0fcfca041125096bf.png

相关文章

ThinkPHP6 事件的简单应用

ThinkPHP6 事件的简单应用

一、序章ThinkPHP6的手册中关于【事件】章节的介绍都是直接文字说明,给出创建的类文件,并没有一个好的示例来进行补充说明。对于刚接触【事件】的同学在阅读理解上增加了一点点困难,本文就在此结合示例简...

composer安装插件包的时候提示PHP 版本不匹配

因为安装的 PHP 是 8.0 ,不匹配 composer.json 要求的版本,所以使用 composer 进行安装时会报错。在安装命令后加上 --ignore-pla...

在thinkphp6中使用依赖注入或容器来创建对象

很多时候,在自己的控制器中需要调用另一个控制器中的方法,但是没有直接的继承关系,比如两个控制器同时继承了一个common类。如果我们直接new一个控制器中的类,就会提示Too few&nbs...

关于thinkphp5.1中间件的使用

关于thinkphp5.1中间件的使用

在tp5.1开始,有了中间件的概念。 首先中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理。 生成中间件: php thin...

thinkphp6 使用中的注意点

thinkphp6 使用中的注意点

1、TP6中采用多应用模式需要安装  composer require topthink/think-multi-app如果需要使用view,还必须安装模板引擎...

thinkphp5 微信token验证不通过

刚想接入下微信公众平台,用了最新的tp5,之前用的是tp3.2.3,发现配置好文件后,微信后台一直提示token验证失败。 但是直接在入口文件写echo $_GET["echostr"];就会提...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。