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一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
CentOS安装php v8js教程
Feb 26 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
php计算title标题相似比的方法
Jul 29 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 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利用cookie实现访问次数统计代码
2011/05/19 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
php查询whois信息的方法
2015/06/08 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
基于python调用psutil模块过程解析
2019/12/20 Python
python将unicode和str互相转化的实现
2020/05/11 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
Python实现机器学习算法的分类
2021/06/03 Python