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+mysql)
Nov 23 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
dedecms集成财付通支付接口
Dec 28 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
python解析xml文件操作实例
2014/10/05 Python
Python实现的多线程端口扫描工具分享
2015/01/21 Python
基于python指定包的安装路径方法
2018/10/27 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
火车来了教学反思
2014/02/11 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android