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 相关文章推荐
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
PHP取进制余数函数代码
Jan 19 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
php备份数据库类分享
Apr 14 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 PHP
laravel框架如何设置公共头和公共尾
Oct 22 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
python实现得到一个给定类的虚函数
2014/09/28 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Python2.x与Python3.x的区别
2016/01/14 Python
django批量导入xml数据
2016/10/16 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
会话Bean的种类
2013/11/07 面试题
汽修专业学生自我鉴定
2013/11/16 职场文书
中专生的个人自我评价
2013/12/11 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
房产代理公证处委托书
2014/04/04 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
用电申请报告范文
2015/05/18 职场文书
交通事故协议书范本
2016/03/19 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript