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读注册表
Oct 09 PHP
php 读取shell管道传输过来的内容
Mar 01 PHP
PHP操作xml代码
Jun 17 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
CI框架常用函数封装实例
Nov 21 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 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
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
深入浅析Python字符编码
2015/11/12 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
python 实现多维数组(array)排序
2020/02/28 Python
python中PyQuery库用法分享
2021/01/15 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
战友聚会邀请函
2014/01/18 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
大学课外活动总结
2014/07/09 职场文书
写字楼租赁意向书
2014/07/30 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
介绍信的格式
2015/01/30 职场文书
现役军人家属慰问信
2015/03/24 职场文书
违纪开除通知书
2015/04/25 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
Go语言特点及基本数据类型使用详解
2022/03/21 Golang