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 相关文章推荐
header中Content-Disposition的作用与使用方法
Jun 13 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
php实现简单洗牌算法
Jun 18 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 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
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
jQuery之网页换肤实现代码
2011/04/30 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
js实现扫雷源代码
2020/11/27 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python的randrange()方法使用教程
2015/05/15 Python
django文档学习之applications使用详解
2018/01/29 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
技术学校毕业生求职信分享
2013/12/02 职场文书
公司培训欢迎词
2014/01/10 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
大学生简短的自我评价
2014/09/12 职场文书
2015年度党员个人总结
2015/02/14 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers