thinkphp5 验证码和自定义路由
Posted 狂鸟·凡尘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 的最后通过返回数组的方式直接定义路由规则。路由动态注册和配置定义的方式可以共存
以上是关于thinkphp5 验证码和自定义路由的主要内容,如果未能解决你的问题,请参考以下文章