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 相关文章推荐
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
php中并发读写文件冲突的解决方案
Oct 25 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
PHP最常用的正则表达式
Feb 13 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
php模拟实现斗地主发牌
Apr 22 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 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的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
JS实现拖动模糊框特效
2020/08/25 Javascript
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
python3个性签名设计实现代码
2018/06/19 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
Python实现最大子序和的方法示例
2019/07/05 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
商务会议邀请函
2014/01/09 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
工作试用期自我评价
2015/03/10 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python