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学习笔记之二 php入门知识
Jan 12 PHP
PHP的SQL注入过程分析
Jan 06 PHP
php代码收集表单内容并写入文件的代码
Jan 29 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
php获取远程文件内容的函数
Nov 02 PHP
php HTML无刷新提交表单
Apr 05 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 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新特性之字节码缓存和内置服务器
2017/08/11 PHP
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
详解django三种文件下载方式
2018/04/06 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
在python 中实现运行多条shell命令
2019/01/07 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python类的动态绑定实现原理
2020/03/21 Python
解决python对齐错误的方法
2020/07/16 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
Numpy数组的广播机制的实现
2020/11/03 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
食品安全承诺书
2014/05/22 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
法人委托书
2014/07/31 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
大学推普周活动总结
2015/05/07 职场文书
联村联户简报
2015/07/21 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
深入理解 Golang 的字符串
2022/05/04 Golang