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
Dec 14 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php算法实例分享
Jul 14 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
PHP 无限级分类
May 04 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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
PHPLog php 程序调试追踪工具
2009/09/09 PHP
PHPCMS的使用小结
2010/09/20 PHP
php正则表达式(regar expression)
2011/09/10 PHP
PHP引用的调用方法分析
2016/04/25 PHP
看了就知道什么是JSON
2007/12/09 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python实现顺序表的简单代码
2018/09/28 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
浅谈django channels 路由误导
2020/05/28 Python
python中元组的用法整理
2020/06/15 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
Python远程linux执行命令实现
2020/11/11 Python
selenium自动化测试入门实战
2020/12/21 Python
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
中医专业职业生涯规划书范文
2014/01/04 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
摄影展策划方案
2014/06/02 职场文书
工作失职检讨书范文
2015/05/05 职场文书
铁人观后感
2015/06/16 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书