文件上传:
<?phpnamespace Home\Controller;use Think\Controller;header("content-Type: text/html; charset=Utf-8");class TestController extends Controller ??//如果不继承父类它就不是一个操作方法。{ ???public ?function ?shangchuan(){ ???????$this->show(); ???} ???????public function wjsc(){ ???????$u = new \Think\Upload(); ?//使用这句话来把文件上传的对象给造出来(造对象)。造好对象后就可以使用这个对象里面的方法来进行文件上传了。 ???????$u->maxSize = 1024000; ???//设置文件大小 ?最大只能到这么大 ???????$u->rootPath = "./Public/"; ???//设置文件存放的根路径。 ???????$u->savePath = "./upload/"; ???????????//设置当前上传的文件存放的位置 ???????$u->exts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘); ???????$info = $u->upload(); ???//上传文件并且返回文件信息 ???????if($info){ ???????????echo "上传成功,文件存放在: ???????????{$info["file"][‘savepath‘]}";//返回的文件信息$info是个二维数组。$info是个关联数组,因为它支持多文件一起上传,索引应该是文件选择的form表单中的name值。//$info它里面存的信息是多个文件的信息。是个二维数组。 ???????}else{ ???????????echo $u->getError(); ???????} ???}}
模板文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script></head><body><h1>文件上传</h1><form action="__CONTROLLER__/wjsc" method="post" enctype="multipart/form-data"> ???<input type="file" name="file" /> ???<input type="submit" value="上传" /></form></body></html>
验证码学习:
控制器的类文件 TestController.class.php
<?phpnamespace Home\Controller;use Think\Controller;header("content-Type: text/html; charset=Utf-8");class TestController extends Controller ??//如果不继承父类它就不是一个操作方法。{public function yanzheng(){ ???????$this->show(); ???} ???//用来生成验证码的操作方法: ???public function yzm(){ ???????$v = new \Think\Verify(); ???????????//先造一个验证码的对象出来。 ???????//$v->useImgBg = true; ???????//如果把这个背景图打为true后,验证码的背景图会随机变换。 ???????//$v->fontSize = "56px"; ???//设置验证码字体的大小 ???????//$v->imageW = "100"; ???????//调整验证码图片的大小 ???????//$v->imageH = "30"; ???????????????//$v->length = 2; ???????????//设置验证码的位数 ???????//$v->useZh = true; ???????????//开启了中文验证码 ?需要加字体文件。 ???????//$v->fontttf = "simhei.ttf"; ???//生成中文验证码 ???????$v->entry(); ???//生成验证码 ???}//用来验证验证码的操作方法: ???public function ?yz(){ ???????$yzm = $_POST["yzm"]; ???????//首先把用户给的验证码取出来 ???????$v = new \Think\Verify(); ???????//然后去验证用户给的验证码对不对,造验证码对象。 ???????if($v->check($yzm)){ ???//把用户输入的验证码放进去就可以用check方法来检验了。这里如果验证成功就返回true,验证错误就返回false。 ???????????$this->ajaxReturn("OK","eval"); ???????}else{ ???????????$this->ajaxReturn("NO","eval"); ???????}//这个验证码使用起来非常简单,生成的话造完对象之后调生成的方法。验证的话,造完对象之后调验证的方法。并且把用户给的值,扔到括号里面作为参数就可以了 ???} ???????}
模板文件yanzheng.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script></head><body><h1>验证码</h1><img src="__CONTROLLER__/yzm" id="img"/><input type="text" name="yzm" id="txt" /><input type="button" id="btn" value="验证" /></body><script type="text/javascript"> ???$("#btn").click(function(){ ???????var yzm = $("#txt").val(); ???????????//取到用户输入的验证码 ???????$.ajax({ ???????????url:"__CONTROLLER__/yz", ???????????//指向哪一个验证方法来验证呢 ???????????data:{yzm:yzm}, ???????????type:"POST", ???????????dataType:"TEXT", ???????????success:function (data){ ???????????????if(data.trim()=="OK"){ ???????????????????alert("成功"); ???????????????}else{ ???????????????????alert("失败"); ???????????????} ???????????} ???????}); ???}) ???????//更换验证码的方法就是在点击事件里面给它重新赋一个src就可以了。 ???$("#img").click(function(){ ???????//当我点击这张图的时候,我让它的src属性重新改一下,改完src属性之后,这个属性会重新去请求一遍的。只要改了就能重新请求。所以这样就能重新生成验证码。 ???????var sjs = Math.floor(Math.random()*100); ???//以后做点击更换验证码的时候,一定要加上一个随机数,以防它出现这种缓存的情况。不给你刷新的情况,加上随机数后让每一次都变得不一样,不一样的话点击后就重新刷新了。 ???????$(this).attr("src","__CONTROLLER__/yzm/code/"+sjs); ???}) ???</script></html>
模板文件yz.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script></head><body><form action="__ACTION__" method="post"><input type="text" name="Uid" id="uid" /><span id="ts"></span><input type="submit" value="验证"/></form></body><script type="text/javascript">$("#uid").blur(function(){ ???var uid = $(this).val(); ???$.ajax({ ???????url:"__ACTION__", ???????data:{Uid:uid}, ???????type:"POST", ???????dataType:"TEXT", ???????success:function(data){ ???????????if(data.trim()=="OK"){ ???????????????$("#ts").html("验证通过"); ???????????}else{ ???????????????$("#ts").html("用户名不能为空"); ???????????} ???????} ???});})</script></html>
验证码上传文件
原文地址:http://www.cnblogs.com/shandayuan/p/7500296.html