thinkphp实现图片上传功能


Posted in PHP onJanuary 13, 2016

关于图片上传,实现方法很多,比如可以用jQuery,当然,我们的thinkPHP内置了关于图片上传的功能,我们可以直接使用,使用方法如下:

首先,是表单书写,我们建立如下表单:

<form action="__URL__/addChk" method="post" enctype="multipart/form-data"> 
 <table cellspacing="1" cellpadding="2" width="99%" align="center" border="0"> 
  <tbody> 
   <tr> 
   <th align="left" colspan="2" height="25">添加新游戏</th> 
   </tr> 
   <tr> 
   <td width="17%" height="23">游戏名称</td> 
   <td width="83%"><strong><input type="text" name="gamename" /></strong></td> 
   </tr> 
   <tr> 
   <td height="23">游戏图片</td> 
   <td ><input type="file" name="gameimg"/></td> 
   </tr> 
   <tr> 
   <td width="17%" height="23">游戏简介<span></span></td> 
   <td width="83%"><textarea name="gameinfo" cols="30" rows="5"></textarea></td> 
   </tr> 
   <tr> 
   <td height="23">游戏地址:</td> 
   <td> 
   <input type="text" name="gamelink"/></td> 
   </tr> 
   <tr> 
   <td height="23" colspan="2" ><input type="submit" value="添加" />  
    <input type="reset" value="重新填写"/></td> 
   </tr> 
  </tbody> 
  </table> 
</form>

这里有个非常重要的地方,就是一定要在表单项目添加上enctype="multipart/form-data"这一点是非常重要的,因为这个是允许你上传的类型的,如果没有他,就不能上传,关于enctype的其他几种类型,我会在以后的文章上说明。这里我们新建php文件AddAction.class.php,代码如下;

class AddAction extends Action{ 
 /** 
 * 说明:ThinkPHP文件上传测试函数 
 * 版本:1.0 

 */ 
 public function addChk(){ 
   //导入图片上传类 
   import("ORG.Net.UploadFile"); 
   //实例化上传类 
   $upload = new UploadFile(); 
   $upload->maxSize = 3145728; 
   //设置文件上传类型 
   $upload->allowExts = array('jpg','gif','png','jpeg'); 
   //设置文件上传位置 
   $upload->savePath = "./Public/Uploads/";//这里说明一下,由于ThinkPHP是有入口文件的,所以这里的./Public是指网站根目录下的Public文件夹 
   //设置文件上传名(按照时间) 
   $upload->saveRule = "time"; 
   if (!$upload->upload()){ 
    $this->error($upload->getErrorMsg()); 
   }else{ 
    //上传成功,获取上传信息 
    $info = $upload->getUploadFileInfo(); 
   } 
 
   //保存表单数据,包括上传的图片 
   $game = M("Game"); 
   $game->create(); 
   $savename = $info[0]['savename']; 
   //$savepath = $info[0]['savepath']; 
   //$aa = $savepath.$savename; 
   //dump($aa); 
   $imgurl = "http://demo.dutycode.com/Public/Uploads/".$savename;//这里是设置文件的url注意使用.不是+ 
   //dump($imgurl); 
   $data['gamename'] = $_POST['gamename']; 
   $data['gameimg'] = $imgurl; 
   $data['gameinfo'] = $_POST['gameinfo']; 
   $data['gamelink'] = $_POST['gamelink']; 
   $data['publishtime'] = date("Y-m-d H:i:s"); 
   $res = $game->add($data);//写入数据库 
   if ($res){ 
    $this->redirect("addGame","",2,"添加成功!两秒后跳回"); 
   }else{ 
    $this->redirect("addGame","",2,"失败!两秒后跳回"); 
   } 
}

这里说明一下,首先是php中的连接符是点(.)不是+,这一点在很多java使用者里面通常使用+连接两个字符串的,所以这一点容易混淆。

以上就是针对thinkphp图片上传功能实现代码的介绍,帮助大家更好的学习掌握php程序设计。

PHP 相关文章推荐
php递归列出所有文件和目录的代码
Sep 10 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
详解PHP中的PDO类
Jul 06 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
微信公众平台DEMO(PHP)
May 04 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
PHP日期和时间函数的使用示例详解
Aug 06 PHP
PHP加MySQL消息队列深入理解
Feb 27 PHP
PHP实现伪静态方法汇总
Jan 13 #PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 #PHP
优化WordPress中文章与评论的时间显示
Jan 12 #PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 #PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 #PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 #PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 #PHP
You might like
虫族 Zerg 历史背景
2020/03/14 星际争霸
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
详解JS函数重载
2014/12/04 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
深入理解python try异常处理机制
2016/06/01 Python
Python 使用with上下文实现计时功能
2018/03/09 Python
python交互界面的退出方法
2019/02/16 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
运动会领导邀请函
2014/01/10 职场文书
追悼会主持词
2014/03/20 职场文书
亲子活动总结
2014/04/26 职场文书
2015年派出所工作总结
2015/04/24 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS