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 相关文章推荐
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
php cookie 登录验证示例代码
Mar 16 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 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会员权限控制实现原理分析
2011/05/29 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
JS作用域深度解析
2016/12/29 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
JS作用域链详解
2017/06/26 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
jQuery实现增删改查
2020/12/22 jQuery
python 把数据 json格式输出的实例代码
2016/10/31 Python
python实现redis三种cas事务操作
2017/12/19 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python 绘制场景热力图的示例
2020/09/23 Python
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
安全大检查反思材料
2014/01/31 职场文书
2014年评职称工作总结
2014/11/20 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
博物馆观后感
2015/06/05 职场文书
信仰纪录片观后感
2015/06/08 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android