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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
如何把PHP转成EXE文件
Oct 09 PHP
用来给图片加水印的PHP类
Apr 09 PHP
在PHP中实现Javascript的escape()函数代码
Aug 08 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
学习使用curl采集curl使用方法
Jan 11 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 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
phpwind中的数据库操作类
2007/01/02 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
php 缩略图实现函数代码
2011/06/23 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
python实现实时监控文件的方法
2016/08/26 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
创业计划书六个要素
2013/12/26 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
书法社团活动总结
2015/05/07 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
AJAX学习笔记
2021/05/18 Javascript
Python利用capstone实现反汇编
2022/04/06 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle