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调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
PHP 类相关函数的使用详解
May 10 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
关于PHP中interface的用处详解
Jul 26 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 读取和编写 XML
2014/11/19 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
pytorch 常用线性函数详解
2020/01/15 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
光声世纪笔试题目
2012/08/25 面试题
大学生毕业自荐信
2013/10/10 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
音乐教育感言
2014/03/05 职场文书
活动总结模板
2014/05/09 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
观看建国大业观后感
2015/06/01 职场文书
四大名著读书笔记
2015/06/25 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
爱国教育主题班会
2015/08/14 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
python通过函数名调用函数的几种方法总结
2021/06/07 Python