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中ADODB类详解
Mar 25 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
php 文件上传类代码
Aug 06 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
CI框架Session.php源码分析
Nov 03 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
PHP二维数组去重算法
Dec 17 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
js实现聊天对话框
2020/02/08 Javascript
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
中英文求职信范文
2014/01/27 职场文书
优秀经理获奖感言
2014/03/04 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
道歉的话语大全
2015/05/12 职场文书
关于做家务的心得体会
2016/01/23 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS