当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP实现带验证码的文件上传功能实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-21 10:43:18 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP实现带验证码的文件上传功能,实例相关类的导入与调用步骤,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了ThinkPHP实现带验证码的文件上传功能。分享给大家供大家参考。具体实现方法如下:

ThinkPHP上传文件非常的简单我们只要调用一个文件上传类UploadFile就可以快速的实现上传功能了,下面我来给大家整理了一个上传文件时需要验证功能的例子,希望文章对大家会带来帮助。

在模板中我们只需要调用就可以了,代码如下:

  1. <html> 
  2. <head> 
  3. <title>验证码</title> 
  4. </head> 
  5. <body> 
  6. <formactionformaction='__URL__/login'method='post'enctype="multipart/form-data"> 
  7. 文件上传:<inputtypeinputtype='file'name='imgage'><br/> 
  8. 验证码:<inputtypeinputtype='text'name='verify'> 
  9. <imgsrcimgsrc='__URL__/verify'onclick='change()'id='verify'/><br/> 
  10. <inputtypeinputtype='submit'value='提交'> 
  11. </form> 
  12. </body> 
  13. </html> 

php处理文件,代码如下:

  1. <?php 
  2. classIndexActionextendsAction{ 
  3. /*验证码*/ 
  4. publicfunctionverify(){ 
  5. $type=isset($_GET['type'])?$_GET['type']:'gif';//如果不设置验证码的图片格式,默认为gif格式 
  6. import("@.ORG.Image");//导入图片出来类 
  7. Image::buildImageVerify(4,1,$type);//设置验证码有几位,是数字,还是字母 
  8. /*文件上传*/ 
  9. publicfunctionupload(){ 
  10. if(!emptyempty($file)) 
  11. import('@.ORG.UploadFile');//导入文件上传类 
  12. $file=newUploadFile();//实例化UploadFile类 
  13. //我们可以设置文件上传的一些属性 
  14. $file->maxSize=1000000;//设置上传图片大小 
  15. $file->allowExtes=expload(',','jpg,jpeg,png,gif');//设置文件上传格式 
  16. $file->savePath='/Tpl/default/Public/Uploads/';//设置图片存放位置 
  17. $file->thumb='true';//是否设置为缩略图 
  18. $file->thumbPrefix='s_';//设置缩略图的前缀 
  19. $file->thumbMaxWidth='400,100';//设置图片的最大宽度 
  20. $file->thumbMaxHeight='400,100';//设置图片的最大高度 
  21. if($file->upload){ 
  22. $list=$file->getUploadFileInof();//获取文件上传信息 
  23. import('@.ORG.Image'); 
  24. //给图片添加水印 
  25. Image::water($list[0]['savepath'].'s_'.$list[0]['savename'],'File/Tpl/defalut/Public/Images/logo.jpg'); 
  26. }else
  27. $this->error($file->getErrorMsg()); 
  28. $Model=M('Photo'); 
  29. $data['image']=$_POST['image']; 
  30. $data['create_time']=time(); 
  31. $vo=$Model->add($data); 
  32. if($vo!==false){ 
  33. $this->success("图片上传成功!"); 
  34. }else
  35. $this->error("图片上传失败"); 

简单的分析一下例子,代码如下:

  1. import('@.ORG.UploadFile');//导入文件上传类 
  2. $file=newUploadFile();//实例化UploadFile类 

这个就是直接调用了thinkphp文件处理类了,我们不需要作任何操作了。

在上传过程中与其它的类会有一些区别了,代码如下:

  1. $Model=M('Photo'); 
  2. $data['image']=$_POST['image']; 
  3. $data['create_time']=time(); 
  4. $vo=$Model->add($data); 

这个$_POST['image']就是获取我们html file的名字了,这个可以是数组那就是多文件上传了。

希望本文所述对大家的ThinkPHP程序设计有所帮助。

Tags: ThinkPHP文件上传

分享到: