这篇文章主要介绍一下Thinkphp中的数据分页,文件上传以及验证码。
数据分页:①分页类和page方法的实现分页
$page=new \Think\Page($count,$pagesize);
- Page()中传入总记录数和每页显示的记录数。
- 一定要实例化分页类
利用show生成分页链接,分页显示输出
$show=$page->show();
数据分页:②利用Page类和limit方法分页
$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->
select();
分页样式定制:
分页类Page提供了一个setConfig方法来修改默认的一些设置
$page->setConfig('header','');
$page->setConfig('prev','上一页');
$page->setConfig('next','下一页');
$page->setConfig('first','首页');
$page->setConfig('last','末页');
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
另外setConfig方法支持的属性包括:
这样我们可以对输出的分页样式进行定制。显示位置的对应的关系为:
文件上传:
在文件上传时,表单中首先要添加一个属性
<form action="__URL__/index" enctype="multipart/form-data" method="post" >
<input type="file" name="photo" />
<input type="submit" value="提交" >
</form>
使用 Think\Upload 类来上传文件,调用upload函数
$upload = new \Think\Upload();// 实例化上传类
// 上传文件
$info = $upload->upload();//调用upload函数
在上传操作之前,我们可以对上传的属性进行一些设置,Upload类支持的属性设置包括:
上传参数有两种方式一种的动态赋值
$upload = new \Think\Upload();// 实例化上传类
//设置上传的各种参数
$upload->maxSize = 0 ;// 设置附件上传大小
$upload->exts = array('csv');// 设置附件上传类型
$upload->rootPath = './Public/Uploads/'; // 设置附件上传目录
// 上传文件
$info = $upload->upload();//调用upload函数
另一种是实例化传入
$config = array(
'maxSize'=>0,//将maxsize设置为0时,是不限制上传文件大小
'rootPath' => './Public/Uploads/',
);
$upload = new \Think\Upload($config);// 实例化上传类
之后调用upload来上传,失败返回false。
- 我们设置的允许文件上传的拓展名为csv。下边来简单说一下csv和excel的区别:
- CSV是以逗号间隔的文本文件,XLS是电子表格,包含文本、数值、公式和格式。当不需要公式和格式表格可用CSV格式保存,当需要时则请保存为XLS格式。
- 另外excel表导入数据库中需要转换为csv格式,要不然会产生乱码。
单文件上传
upload方法支持多文件上传,有时候,我们只需要上传一个文件,就可以使用Upload类提供的 uploadOne方法上传单个文件:
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 0 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Public/Uploads/'; // 设置附件上传根目录
// 上传单个文件
$info = $upload->uploadOne($_FILES['photo1']);
验证码
Think\Verify类可以支持验证码的生成和验证功能。
生成验证码:
public function yzm(){
$config = array(
'fontSize' => 30, // 验证码字体大小
'length' => 4, // 验证码位数
);
$Verify = new \Think\Verify($config);//实例化验证码类
$Verify->entry();
}
生成的验证码信息会保存到session中,包含的数据有:①当前验证码的值②生成验证码的时间戳。
如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息。
$Verify = new \Think\Verify($config);//实例化验证码类
$Verify->entry(1);
$Verify = new \Think\Verify($config);//实例化验证码类
$Verify->entry(2);
验证码参数
我们也可以对生成的验证码进行参数设置:
、
上传验证码的参数与上传文件的方式一样也有两种方式。可以参照上传文件的参数来上传验证码参数。
验证码也支持支持验证码背景图片功能和使用中文验证码,只要将useImgBg,useZh设置为true就可以了。
$Verify->useImgBg = true;
$Verify->useZh = true;
$Verify->entry();
验证码检测
check 方法检测验证码的输入是否正确
if (!$verify->check($yzm)) {
$this->ajaxReturn(array('ret'=>false,'msg'=>"验证码输入不正确"));
exit;
}
上边这段代码是来检测如果验证码输入的不正确,则用ajax的方式返回验证码输入不正确。