thinkphp5 验证码和自定义路由
首先使用Composer安装think-captcha扩展包:
composer require topthink/think-captcha=1.*
模版内验证码的显示
<div>{:captcha_img()}</div>
<div><img src="{:captcha_src()}" alt="captcha" onclik="this.src=‘{:captcha_src()}‘" /></div>内置验证功能,添加captcha验证规则即可
$this->validate($data,[
‘captcha|验证码‘=>‘require|captcha‘
]);
//或者手动验证
if(!captcha_check($captcha)){
 //验证失败
};文件上传:
表单代码如
<form action="/index/index/upload" enctype="multipart/form-data" method="post"> <input type="file" name="image" /> <br> <input type="submit" value="上传" /> </form>
控制器代码:
public function upload(){
    // 获取表单上传文件 例如上传了001.jpg
    $file = request()->file(‘image‘);
    // 移动到框架应用根目录/public/uploads/ 目录下
    if($file){
        $info = $file->validate([‘size‘=>15678,‘ext‘=>‘jpg,png,gif‘])
->move(ROOT_PATH . ‘public‘ . DS . ‘uploads‘);
        if($info){
            // 成功上传后 获取上传信息
            // 输出 jpg
            echo $info->getExtension();
            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            echo $info->getSaveName();
            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            echo $info->getFilename(); 
        }else{
            // 上传失败获取错误信息
            echo $file->getError();
        }
    }}如何自定义路由:
路由定义采用\think\Route类,通常是在应用的路由配置文件application/route.php进行注册
use think\Route;// 注册路由到index模块的News控制器的read操作 Route::rule(‘new/:id‘,‘index/News/read‘);
访问:
http://serverName/new/5 http://serverName/index/news/read/id/5
可以在rule方法中指定请求类型,不指定的话默认为任何请求类型
Route::rule(‘new/:id‘,‘News/update‘,‘POST‘);

系统提供了为不同的请求类型定义路由规则的简化方法,
Route::get(‘new/:id‘,‘News/read‘); // 定义GET请求路由规则 Route::post(‘new/:id‘,‘News/update‘); // 定义POST请求路由规则 Route::put(‘new/:id‘,‘News/update‘); // 定义PUT请求路由规则 Route::delete(‘new/:id‘,‘News/delete‘); // 定义DELETE请求路由规则 Route::any(‘new/:id‘,‘News/read‘); // 所有请求都支持的路由规则
批量注册
Route::rule([ ‘路由规则1‘=>‘路由地址和参数‘, ‘路由规则2‘=>[‘路由地址和参数‘,‘匹配参数(数组)‘,‘变量规则(数组)‘] ... ],‘‘,‘请求类型‘,‘匹配参数(数组)‘,‘变量规则‘);
定义路由配置文件
除了支持动态注册,也可以直接在应用目录下面的route.php 的最后通过返回数组的方式直接定义路由规则。路由动态注册和配置定义的方式可以共存
相关推荐
  wangxuekuan    2020-11-24  
   xuedabao    2020-11-19  
   hjr    2020-10-21  
   sjun0    2020-11-12  
   bestallen    2020-08-17  
   80143853    2020-08-17  
   Tplinkly    2020-08-15  
   dingyahui    2020-08-12  
   JiangMengYa    2020-07-30  
   BingGoGo技术    2020-07-25  
   前端小白    2020-07-19  
   JudeJoo    2020-07-14  
   bowean    2020-07-05  
   82344699    2020-07-05  
   85423468    2020-06-26  
   tuxlcsdn    2020-06-21  
   独行者0    2020-06-20  
 