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


Posted in PHP onNovember 01, 2014

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

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

在模板中我们只需要调用就可以了

<html>

<head>

<title>验证码</title>

</head>

<body>

<formaction='__URL__/login'method='post'enctype="multipart/form-data">

文件上传:<inputtype='file'name='imgage'><br/>

验证码:<inputtype='text'name='verify'>

<imgsrc='__URL__/verify'onclick='change()'id='verify'/><br/>

<inputtype='submit'value='提交'>

</form>

</body>

</html>

php处理文件
<?php

classIndexActionextendsAction{

/*验证码*/

publicfunctionverify(){

$type=isset($_GET['type'])?$_GET['type']:'gif';//如果不设置验证码的图片格式,默认为gif格式

import("@.ORG.Image");//导入图片出来类

Image::buildImageVerify(4,1,$type);//设置验证码有几位,是数字,还是字母

}

/*文件上传*/

publicfunctionupload(){

if(!empty($file))

import('@.ORG.UploadFile');//导入文件上传类

$file=newUploadFile();//实例化UploadFile类

//我们可以设置文件上传的一些属性

$file->maxSize=1000000;//设置上传图片大小

$file->allowExtes=expload(',','jpg,jpeg,png,gif');//设置文件上传格式

$file->savePath='/Tpl/default/Public/Uploads/';//设置图片存放位置

$file->thumb='true';//是否设置为缩略图

$file->thumbPrefix='s_';//设置缩略图的前缀

$file->thumbMaxWidth='400,100';//设置图片的最大宽度

$file->thumbMaxHeight='400,100';//设置图片的最大高度

if($file->upload){

$list=$file->getUploadFileInof();//获取文件上传信息

import('@.ORG.Image');

//给图片添加水印

Image::water($list[0]['savepath'].'s_'.$list[0]['savename'],'File/Tpl/defalut/Public/Images/logo.jpg');

}else{

$this->error($file->getErrorMsg());

}

$Model=M('Photo');

$data['image']=$_POST['image'];

$data['create_time']=time();

$vo=$Model->add($data);

if($vo!==false){

$this->success("图片上传成功!");

}else{

$this->error("图片上传失败");

}

}

}

简单的分析一下例子
import('@.ORG.UploadFile');//导入文件上传类

$file=newUploadFile();//实例化UploadFile类

这个就是直接调用了thinkphp文件处理类了,我们不需要作任何操作了。
在上传过程中与其它的类会有一些区别了
$Model=M('Photo');

$data['image']=$_POST['image'];

$data['create_time']=time();

$vo=$Model->add($data);

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

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

PHP 相关文章推荐
用文本作数据处理
Oct 09 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
php页面防重复提交方法总结
Nov 25 PHP
destoon数据库表说明汇总
Jul 15 PHP
PHP遍历文件夹与文件类及处理类用法实例
Sep 23 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 #PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 #PHP
ThinkPHP分组下自定义标签库实例
Nov 01 #PHP
PHP根据两点间的经纬度计算距离
Oct 31 #PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 #PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 #PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 #PHP
You might like
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
javascript遍历控件实例详细解析
2014/01/10 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python入门教程之识别验证码
2017/03/04 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python构造函数init实例方法解析
2020/01/19 Python
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
如何利用find命令查找文件
2015/02/07 面试题
新闻编辑自荐信
2013/11/03 职场文书
法制宣传日活动总结
2014/04/29 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
初中毕业感言300字
2015/07/31 职场文书
妇产科护理心得体会
2016/01/22 职场文书
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android
Apache自带的ab压力测试工具的实现
2022/07/23 Servers